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 @ 2022-02-15 15:59  Renhr  阅读(82)  评论(0)    收藏  举报