集合运算

set_union() //实现求集合A,B的并。
set_difference()//实现求集合A,B的差(即A—B)
set_symmetric_difference()//实现求集合A,B的对称差(即(A-B)并(B-A))
set_intersection()//实现求集合A,B交集。
这四种运算的参数有5个,前四个是first.begin(), first.end() ,second.begin(), second.end();
第五个参数:inserter(ans,ans.begin());
特别的使用时要求两个集合有序
适用多种容器,数组、向量、集合
求两个集合的并集
#include
#include
#include
using namespace std;
int main()
{
    vector<int> first,second,ans;
    first.push_back(1);
    first.push_back(5);
    first.push_back(2);
    first.push_back(0);
    //first={1,5,2,0}
    second.push_back(2);
    second.push_back(6);
    second.push_back(4);
    second.push_back(0);
    //second={2,6,4,0}
    sort(first.begin(),first.end());
    sort(second.begin(),second.end());
    //如果没有事先的排序无法得到正确的集合运算结果
    set_union(first.begin(),first.end(),second.begin(),second.end(),inserter(ans,ans.begin()));
    for(int i=0;icout<//ans={0,2}
    return 0;
}


你可能感兴趣的:(c++,stl集合运算)