Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 쌍 집합

<시간/>

C++에서 설정은 연관 컨테이너이며 고유한 요소를 포함합니다. 특정 요소에 한 번 추가된 모든 요소는 수정할 수 없습니다. 요소를 변경하려면 제거 및 추가만 할 수 있습니다.

쌍은 헤더 아래에 정의되며 두 쌍의 값을 결합하는 데 사용됩니다. 쌍은 다르거나 같은 유형의 값을 가질 수 있습니다. 클래스에는 쌍의 값에 개별적으로 액세스하기 위한 first() 및 second() 멤버 함수가 있습니다.

쌍 요소의 순서는 고정되어 있습니다(첫 번째, 두 번째). 쌍을 사용하여 서로 다른 유형의 이종 값 두 개를 결합할 수 있습니다.

모든 요소에 액세스하려면 variable_name.first를 사용합니다. 첫 번째 요소에 대해 variable_name.second 사용 쌍의 두 번째 요소입니다.

C++의 쌍 세트

  • 쌍 세트에는 중복 쌍이 허용되지 않습니다.
  • 이러한 집합의 요소, 즉 쌍은 집합에 있는 각 쌍의 첫 번째 요소인 키에 따라 정렬됩니다.
  • 특정 쌍을 검색하고, 쌍을 추가하고, 쌍을 제거하고 존재하는 쌍의 수를 얻을 수 있습니다.
  • 구문은 −
    set< pair<datatype1, datatype2> > set_name;
set < pair <int, int> > set1;

여기서, set1은 두 개의 정수 유형의 쌍으로 구성된 집합 유형의 객체입니다.

예시

#include <bits/stdc++.h>
using namespace std;
int main(){
   //pair<int, int> pairs;
   int arr[]={ 2, 3, 1, 6, 9, 7, 10, 2 };
   int n=8;
   set<pair <int,int> > set1;
   for (int i = 0; i < n-1 ; i++) {
      for (int j = i + 1; j < n; j++) {
         if (arr[i] % 2 == 1 && arr[j] % 2 == 1) {
            // pairs of odd numbers
            pairs p1 = make_pair(arr[i], arr[j]);
            // putting into the set
            set1.insert(p1);
         }
      }
   }
   // to display the pairs
   for (auto const &var : set1) {
      cout << "(" << var.first << ", "<< var.second << ")"<< " ";
   }
   // to clear the set
   set1.clear();
}

출력

(1, 7) (1, 9) (3, 1) (3, 7) (3, 9) (9, 7)