set_union是將已序的源區間[source1Beg,sourceEnd)和[source2Beg,source2End)內的元素合併,得到“以destBeg起始”的目標區間。
同時出現在兩個源區間內的元素,在並集區間中將只出現一次。
#include "algostuff.hpp"
#include <iterator>
#include <ostream>
using namespace std;
int main(){
list<int> coll_list;
set<int> coll_set;
INSERT_ELEMENTS(coll_list,1,2);
INSERT_ELEMENTS(coll_list,2,3);
INSERT_ELEMENTS(coll_list,6,7);
INSERT_ELEMENTS(coll_list,7,9);
INSERT_ELEMENTS(coll_set,1,2);
INSERT_ELEMENTS(coll_set,2,3);
INSERT_ELEMENTS(coll_set,6,7);
INSERT_ELEMENTS(coll_set,7,9);
INSERT_ELEMENTS(coll_set,10,12);
PRINT_ELEMENTS(coll_list,"coll_list:");
cout<<endl;
PRINT_ELEMENTS(coll_set,"coll_set:");
cout<<endl;
set_union(coll_list.begin(),coll_list.end(),coll_set.begin(),coll_set.end(),ostream_iterator<int>(cout," "));
return 0;
}
編譯後輸出:
coll_list:1 2 2 3 6 7 7 8 9
coll_set:1 2 3 6 7 8 9 10 11 12
1 2 2 3 6 7 7 8 9 10 11 12