学习C++之STL:常用集合算法set_intersection、set_union、set_difference

算法简介:
set_intersection:求两个容器的交集
set_union:求两个容器并集
set_difference:求两个容器的差集
这3个算法均由algorithm头文件提供。

set_intersection
函数原型:set_intersection(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest)
作用:将容器1和容器2的交集(既属于容器1又属于容器2的部分)存到目标容器,dest为目标容器的起始迭代器。
注意事项:
目标容器必须提前准备好大小,考虑极限情况,为min(容器1大小,容器2大小);
函数返回目标容器最后一个被写入的位置(迭代器);
两个源容器必须有序。

set_union
函数原型:set_union(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest)
作用:将容器1和容器2的并集(容器1和容器2的不重复汇总)存到目标容器,dest为目标容器的起始迭代器。
注意事项:
目标容器必须提前准备好大小,考虑极限情况,为容器1大小+容器2大小;
函数返回目标容器最后一个被写入的位置(迭代器);
两个源容器必须有序。

set_difference
函数原型:set_difference(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest)
作用:将容器1和容器2的差集(容器1有而容器2没有的内容,即容器1内容除去容器1与容器2的交集)存到目标容器,dest为目标容器的起始迭代器。
注意事项:
目标容器必须提前准备好大小,考虑极限情况,为容器1大小;
函数返回目标容器最后一个被写入的位置(迭代器);
两个源容器必须有序。

猜你喜欢

转载自blog.csdn.net/qq_44643644/article/details/108475565