常用集合算法
发布日期:2021-11-20 10:17:59 浏览次数:17 分类:技术文章

本文共 1327 字,大约阅读时间需要 4 分钟。

1.set_intersection:求两个容器的交集

#include "pch.h"#include 
#include
#include
using namespace std;//set_intersectionvoid test01() {
vector
v1; vector
v2; vector
vtarget; //目标容器需要提前开辟空间 //最特殊情况,大容器包含小容器,开辟空间取小容器的值 vtarget.resize(min(v1.size(), v2.size())); vector
::iterator itend=set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());}

2.set_union:并集

//set_unionvoid test01() {
vector
v1; vector
v2; for (int i = 0; i < 10; i++) {
v1.push_back(i); v2.push_back(i + 5); } vector
vtarget; //目标容器需要提前开辟空间 //最特殊情况,两个容器没有交集,并集就是两个容器size相加 vtarget.resize(v1.size()+v2.size()); vector
::iterator itend = set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());}

3.set_difference:差集

//set_difference,不是交集的部分,看哪个容器和哪个容器的差集void test01() {
vector
v1; vector
v2; for (int i = 0; i < 10; i++) {
v1.push_back(i); v2.push_back(i + 5); } vector
vtarget; //目标容器需要提前开辟空间 //最特殊情况,两个容器没有交集,差集就是两个容器size最大 vtarget.resize(max(v1.size(), v2.size())); vector
::iterator itend = set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());}

转载地址:https://blog.csdn.net/weixin_43223362/article/details/103466230 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C++ 条件运算符(三目运算符)
下一篇:STL-常用遍历算法

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月07日 18时53分40秒