STL 1.4.2 集合并,交,差集

1.set_union 计算并集

将两个集合合并成一个集合,但是要求输入的两个集合必须是有序

set_union(arr1, arr1+n1, arr2, arr2+n2, arr3)-arr3;

int arr1[3]={1,2,3};

int arr2[3]={2,3,4};

int arr3[4];

int n = set_union(arr1, arr1+n1, arr2, arr2+n2, arr3)-arr3;

\\ arr3结果为{1,2,3,4}, n结果为4

2.set_intersection 将两个集合成一个集合,输入的两个集合必须是有序

int arr1[3]={1,2,3};

int arr2[3]={2,3,4};

int arr3[2];

int n = set_intersection(arr1, arr1+n1, arr2, arr2+n2, arr3)-arr3;

\\ arr3结果为{2,3} n结果为2

3.set_difference  给定两个有序数组arr1和arr2,计算arr1-arr2的差集,然后存在数组arr3中,并返回差集大小

set_difference(int *arr1, int n1, int *arr2, int n2, int *arr3);

int Set_Difference(int *arr1, int n1, int *arr2, int n2, int *arr3)

{

    sort(arr1,arr1+n1);

     sort(arr2,arr2+n2);

    int n=set_difference(arr1,arr1+n1,arr2,arr2+n2,arr3)-arr3;

    return n;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值