关于C++中使用set_union、set_intersection、set_difference的总结

看紫书例题5-5时,总会遇到不知道怎么用的函数,每次都会进行查找理解,这次参考了 http://blog.csdn.net/zangker/article/details/22984803的博客...

STL set中有set_union(取两集合并集)、set_intersection(取两集合交集)、set_difference(取两集合差集)。

1、这几个函数的参数一样。
2、set_union(x1.begin(), x1.end(), x2.begin(), x2.end(), inserter(x, x.end())),前两个参数是集合x1的头尾,再依次是集合x2的头尾,最后一个参数就是将集合x1和集合x2取合集后存入集合x中。
/*
Input:
     第一行输入一个正整数T,表示测试次数;
     然后下面有2T行,每一行都有n+1个数字,其中第一个数字是n(0<=n<=100),表示该行后面还有n个数字输入。 
Output: 
     对于每组测试数据,首先输出测试数据序号,”Case #.NO”, 
     接下来输出共5行,每行都是一个集合, 
     前2行分别输出集合A、B,接下3行来分别输出集合A、B的并(A u B)、交(A n B)、差(A – B)。 
     集合中的元素用“{}”扩起来,且元素之间用“,”隔开。 

Input:
     1
     1 2 3 1
     0
Output:
     Case# 1: 
     A = {1, 2, 3} 
     B = {} 
     A u B = {1, 2, 3} 
     A n B = {} 
     A - B = {1, 2, 3}
*/
#include
#include
#include
#include
using namespace std;

int main()
{
    set x1;
    set x2;
    set C1;
    set C2;
    set C3;

    set::iterator pos;
    int T,flag=0;
    cin >> T;
    while(T--)
    {
        flag++;
        int x1_i,x2_i,item;
        cin>>x1_i;
        for(int i = 0; i < x1_i; i++)
        {
            cin >> item;
            x1.insert(item);
        }
        cin >> x2_i;
        for(int i = 0; i < x2_i; i++)
        {
            cin >> item;
            x2.insert(item);
        }
        cout << "Case: " << flag <

输出结果:
关于C++中使用set_union、set_intersection、set_difference的总结_第1张图片

你可能感兴趣的:(函数收集(C++))