C++虽然对vector封装了大量的函数,比如判断元素是否在vector中find、去重的unique,还有在algorithm类中对两个vector求交集、并集的函数,但是,这些函数是不可以直接vector.XX来使用的,具体如下代码所示:

#include "iostream"
#include "vector"
#include "algorithm" //sort函数、交并补函数
#include "iterator" //求交并补使用到的迭代器
using namespace std;//打印容器vector
void print_vector(vector<int> v){if(v.size()>0){cout<<"{";  for(int i=0;i<int(v.size());i++){  cout<<v[i]<<",";  }  cout<<"\b}";  }else{cout<<"{}";}
}//容器vector中元素的去重
vector<int> unique_element_in_vector(vector<int> v){vector<int>::iterator vector_iterator;sort(v.begin(),v.end());vector_iterator = unique(v.begin(),v.end());if(vector_iterator != v.end()){v.erase(vector_iterator,v.end());}return v;
}//两个vector求交集
vector<int> vectors_intersection(vector<int> v1,vector<int> v2){vector<int> v;sort(v1.begin(),v1.end());   sort(v2.begin(),v2.end());   set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集 return v;
}//两个vector求并集
vector<int> vectors_set_union(vector<int> v1,vector<int> v2){vector<int> v;sort(v1.begin(),v1.end());   sort(v2.begin(),v2.end());   set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集 return v;
}//判断vector的某一元素是否存在
bool is_element_in_vector(vector<int> v,int element){vector<int>::iterator it;it=find(v.begin(),v.end(),element);if (it!=v.end()){return true;}else{return false;}
}int main(){vector<int> v1,v2,v;v1.push_back(22);v1.push_back(22);v1.push_back(23);v2.push_back(23);v2.push_back(24);cout<<"v1是否存在1这个元素?"<<is_element_in_vector(v1,1)<<endl;cout<<"对v1去重:";v1=unique_element_in_vector(v1);print_vector(v1);cout<<endl;cout<<"求v1与v2的交集:";v=vectors_intersection(v1,v2);print_vector(v);cout<<endl;cout<<"求v1与v2的并集:";v=vectors_set_union(v1,v2);print_vector(v);return 0;
//两个vector求补集
std::vector<int> d1;
std::vector<int> d2;
std::cout << "set_different" << std::endl;
//Copies the elements from the sorted range [first1, last1)
//which are not found in the sorted range [first2, last2) to the range beginning //at d_firststd::set_difference(v1.begin(),v1.end(),result.begin(),result.end(),std::back_inserter(d1));std::set_difference(v2.begin(),v2.end(),result.begin(),result.end(),std::back_inserter(d2));

两个Vector交集、并集、补集运算相关推荐

  1. 集合中常用的合并 求交集 并集 补集问题

    1.在平时的时候经常会用到求交集.补集.并集.差集的问题 本文通过引入org.apache.commons.collections4.CollectionUtils 进行很方便的解决 ArrayLis ...

  2. pandas对dataframe的两列取交集并集

    输入:一个dataFrame,其中的两列是集合. 输出:对两列合并成新的一列,内容为两列的交集. 举个例子 我想得到的结果为 代码如下: pd.Series([set.intersection(*z) ...

  3. c++链表实现集合交集并集差集运算

    #include<iostream> using namespace std; //创建链表 struct Node {     int content;     Node* next; ...

  4. java 两个list 交集 并集 差集 去重复并集

    去重并集 例如:求List1和List2的并集,并实现去重. 思路是:先将list中与list2重复的去掉,之后将list2的元素全部添加进去. public static void test1(Li ...

  5. C++ vector去重 交集 并集

    原文: yongh701 https://blog.csdn.net/yongh701/article/details/51406458 C++虽然对vector封装了大量的函数,比如判断元素是否在v ...

  6. oracle 并集 时间_Oracle集合运算符 交集 并集 差集

    集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集 一.union求并集,公共部分只有包含一次 例:求emp表ename中含'A'或含有'M' SQL> ...

  7. PAT甲级1023 Have Fun with Numbers:[C++题解]高精度加法和两个vector大小比较

    文章目录 题目分析 题目链接 题目分析 使用高精度加法高精度加法板子求 这个数的两倍,存在一个vector中. 所谓高精度就是使用string来存大的数,然后模拟列竖式加法,结果一位一位压入数组vec ...

  8. STL 算法vector/set集合-交集,并集,差集,对称差

    针对这里提及的四个集合运算必须特别注意:  1.第一个算法需保证第一集合和第二集合有序,并从小到大排序,内部使用默认"<"操作符比较元素大小: 2.第二个算法需保证第一集合和 ...

  9. R语言union函数计算数据对象(vector、list、dataframe)的并集:union函数计算两个vector向量、dataframe、列表list的并集

    R语言union函数计算数据对象(vector.list.dataframe)的并集:union函数计算两个vector向量.dataframe.列表list的并集 目录

最新文章

  1. [perl]Wide character in print报错
  2. micropython串口通信_MicroPython-ESP32串口通信-1Z实验室
  3. 如何确定JTAG好坏?JTAG到底是什么?
  4. 使用numpy实现神经网络模块
  5. oracle导出数据视频教程,Oracle导入导出数据的几种方式
  6. mysql inet addr_InetAddress类的使用
  7. 华侨大学计算机学院2019,华侨大学计算机科学与技术学院2019年非全日制研究生复试成绩(第四批)...
  8. 工具类TestTools
  9. 三元运算符 python_Python三元运算符
  10. matlab化函数图像示例,Matlab绘制函数图像函数示例汇总
  11. GOM引擎 mirserver服务端各文件夹注解
  12. 线性方程组基础解系的简便算法
  13. Java实训—VII,VIII
  14. 阿里物联网iot 网关配置 gateway 与子设备
  15. Vim 批量在行首/行尾插入相同字符
  16. 网页源代码隐藏域中存在密码
  17. 阿里云centos6静默安装oracle11G
  18. SAP ABAP 报表新增字段,重新生成维护视图,以及过程中产生的问题处理
  19. 寒冬潮袭过后(2018总结):各知名互联网一线公司年度大裁员
  20. python编程求圆的周长和面积公式_C语言求圆的周长和面积

热门文章

  1. 使用python保存图片
  2. 格林威尔北向接口在电信中的应用
  3. 《明朝那些事儿》 - 走入那段或辉煌或荒唐的岁月
  4. oracle dbms_workload_repository,oracle 10g 的dbms_workload_repository使用
  5. geth同步 retrieved hash chain is invalid 错误
  6. 使用squid代理时出现 The requested URL could not be retrieved
  7. SQL Server 数据库完整备份不只是备份数据还有日志
  8. JVM 堆栈分析讲解
  9. 男人有必要学会做饭,做家务吗?
  10. java map的长度_JavaMap的一些常用方法