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 );
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都是去重的,不关心元素出现次数】

浙公网安备 33010602011771号