1.功能:求两个集合的并集
2.函数原型
- set_union(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);
- 两个集合必须是有序集合
- set_union返回值是并集最后一个元素的位置
- beg1,end1,beg2,end2 容器1开始、结束迭代器,容器2开始、结束迭代器
- dest 目标容器开始迭代器
#include<iostream> #include<vector> #include<algorithm> #include<numeric> using namespace std; class myprint { public: void operator()(int val) { cout << val << " "; } }; void test1() { vector<int> v1; vector<int> v2; for (int i = 0; i < 10; i++) { v1.push_back(i); // 0`9 v2.push_back(i + 5); // 5`14 } vector<int> vtarget; //目标容器需要提前开辟空间 //最特殊的情况,两个容器没有交集,并集就是两个容器size相加 vtarget.resize(v1.size()+ v2.size()); //获取并集 vector<int>::iterator itEnd = set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin()); for_each(vtarget.begin(), itEnd, myprint()); //打印 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 cout << endl; for_each(vtarget.begin(), vtarget.end(), myprint()); //打印 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 0 0 0 0 cout << endl; } int main() { test1(); return 0; }