Kwang-sung Jun 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검색하시면, 차집합과 교집합을 어떻게 하는지도 나와있습니다.
일반화된 함수라 사용법이 조금 까다롭기에 혹시 도움이 될까 올립니다.