삽질예방/STL 교과서
set_union
Kwang-sung Jun
2009. 4. 24. 16:37
STL에 set을 가만 보면
우리가 원하는 연산이 없습니다.
합집합, 교집합, 차집합 연산이 바로 그것이죠
그런데 사실 그러한 연산들은 STL내에 알고리즘 형태로 어떤 컨테이너(예.벡터)에서도
사용할 수 있도록 제네릭하게 제공되고 있습니다.
결과는
입니다.
set_union검색하시면, 차집합과 교집합을 어떻게 하는지도 나와있습니다.
일반화된 함수라 사용법이 조금 까다롭기에 혹시 도움이 될까 올립니다.
우리가 원하는 연산이 없습니다.
합집합, 교집합, 차집합 연산이 바로 그것이죠
그런데 사실 그러한 연산들은 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;
}
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
abc
def
입니다.
set_union검색하시면, 차집합과 교집합을 어떻게 하는지도 나와있습니다.
일반화된 함수라 사용법이 조금 까다롭기에 혹시 도움이 될까 올립니다.