set——有关集合的函数

【c++学习自:https://blog.csdn.net/zangker/article/details/22984803】

【拓展,Java学习自:https://www.cnblogs.com/zhaobinrui/p/14628618.html】

【拓展,Python学习自:https://blog.csdn.net/u010969910/article/details/82690537】

C++:

set里面有

set_intersection(取集合交集)

set_union(取集合并集)

set_difference(取集合差集)

set_symmetric_difference(取集合对称差集)

其中,关于函数的五个参数问题做一下小结:

1、这几个函数的前四个参数一样,只有第五个参数有多重版本。

2、EX1:set_union(A.begin(),A.end(),B.begin(),B.end(),inserter( C1 , C1.begin() ) );

前四个参数依次是第一的集合的头尾,第二个集合的头尾。第五个参数的意思是将集合A、B取合集后的结果存入集合C中。

EX2:set_union(A.begin(),A.end(),B.begin(),B.end(),ostream_iterator<int>(cout," “));

这里的第五个参数的意思是将A、B取合集后的结果直接输出,(cout," ")双引号里面是输出你想用来间隔集合元素的符号或是空格。

下面是set_union的原型:

复制代码
template<class InputIterator1, class InputIterator2, class OutputIterator>

OutputIterator set_union(

InputIterator1_First1 ,

InputIterator1_Last1 ,

InputIterator2_First2 ,

InputIterator2_Last2 ,

OutputIterator_Result

);
View Code
复制代码

Java:

也是set定义,但不同的是其成员方法简便得多,且是对本身set集合进行修改

set.retainAll()——交集

set.addAll()——并集

set.removeAll()——差集

Python:

复制代码
>>> a=[1,3,5]
>>> b=[1,2,3]
>>> set(a) | set(b)
set([1, 2, 3, 5])
 
# 或者
>>> set(a).union(b)
set([1, 2, 3, 5])
并集
复制代码
复制代码
>>> a=[1,3,5]
>>> b=[1,2,3]
>>> set(a) & set(b)
set([1, 3])
 
# 或者
>>> set(a).intersection(b)
set([1, 3])
交集
复制代码
复制代码
>>> a=[1,3,5]
>>> b=[1,2,3]
>>> set(a) - set(b)
set([5])
 
# 或者
>>> set(a).difference(b)
set([5])
>>>
差集
复制代码
复制代码
>>> a=[1,3,5]
>>> b=[1,2,3]
>>> set(a) ^ set(b)
set([2, 5])
 
# 或者
>>> set(a).symmetric_difference(b)
set([2, 5])
对称差集
复制代码

 【补充:需要注意的是,java和python都是去重的,不关心元素出现次数】

posted @   Renhr  阅读(79)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示