달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2009. 4. 24. 16:37

set_union 삽질예방/STL 교과서2009. 4. 24. 16:37

STL에 set을 가만 보면
우리가 원하는 연산이 없습니다.

합집합, 교집합, 차집합 연산이 바로 그것이죠
그런데 사실 그러한 연산들은 STL내에 알고리즘 형태로 어떤 컨테이너(예.벡터)에서도
사용할 수 있도록 제네릭하게 제공되고 있습니다.

set<string> a;
set<string> b;
set<string> c;

a.insert("abc");
a.insert("def");
b.insert("abc");
b.insert("123");

set_union(s.begin(), s.end(), b.begin(), b.end(), inserter(c, c.begin()));

for(set<string>::iterator it = c.begin(); it != c.end(); it++)
{
   cout << *it << endl;
}


결과는

123
abc
def


입니다.

set_union검색하시면, 차집합과 교집합을 어떻게 하는지도 나와있습니다.
일반화된 함수라 사용법이 조금 까다롭기에 혹시 도움이 될까 올립니다.

:
Posted by Kwang-sung Jun