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

STL에서 Set_Intersection을 구현하는 C++ 프로그램

<시간/>

두 집합의 교집합은 두 집합에서 공통적인 요소에 의해서만 형성됩니다. 함수에 의해 복사된 요소는 항상 동일한 순서의 첫 번째 집합에서 가져옵니다. 두 세트의 요소는 이미 주문해야 합니다.

일반적인 집합 연산은 -

  • 합집합
  • 교차로 설정
  • 대칭 집합 차이 또는 배타적 논리합
  • 차이 또는 빼기 설정

STL에서 Set_Intersection을 구현하는 C++ 프로그램

알고리즘

Begin
   Declare set vector v and iterator st.
   Initialize st = set_intersection (set1, set1 + n, set2, set2 +n, v.begin()))
   Print the intersection between two sets.
End.

예시 코드

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main () {
   int set1[] = {5,6,7,8,9,10};
   int set2[] = {1,2,3,4,6,7};
   vector<int> v(10);
   vector<int>::iterator st;
   sort (set1, set1 + 6);
   sort (set2, set2 + 6);
   st = set_intersection (set1, set1 + 6, set2, set2 + 6, v.begin());
   v.resize(st - v.begin());
   cout << "The intersection between the two set has " << (v.size()) << " elements: "<<endl;
   for (st = v.begin(); st != v.end(); ++st)
      cout<< *st<<" ";
   cout <<endl;
   return 0;
}

출력

The intersection between the two set has 2 elements:
6 7