【C++】Vector判断元素是否存在,去重,求交集,求并集
1 #include <iostream>
2 #include <vector>
3 #include <algorithm> //sort函数、交并补函数
4 #include <iterator> //求交并补使用到的迭代器
5 using namespace std;
6
7 //打印容器vector
8 void print_vector(vector<int> v)
9 {
10 if(v.size()>0)
11 {
12 cout<<"{";
13 for(int i=0;i<int(v.size());i++)
14 {
15 cout<<v[i]<<",";
16 }
17 cout<<"\b}";
18 }
19 else{
20 cout<<"{}";
21 }
22 }
23
24 //容器vector中元素的去重
25 vector<int> unique_element_in_vector(vector<int> v)
26 {
27 vector<int>::iterator vector_iterator;
28 sort(v.begin(),v.end());
29 vector_iterator = unique(v.begin(),v.end());
30 if(vector_iterator != v.end())
31 {
32 v.erase(vector_iterator,v.end());
33 }
34 return v;
35 }
36
37 //两个vector求交集
38 vector<int> vectors_intersection(vector<int> v1,vector<int> v2)
39 {
40 vector<int> v;
41 sort(v1.begin(),v1.end());
42 sort(v2.begin(),v2.end());
43 set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集
44 return v;
45 }
46
47 //两个vector求并集
48 vector<int> vectors_set_union(vector<int> v1,vector<int> v2)
49 {
50 vector<int> v;
51 sort(v1.begin(),v1.end());
52 sort(v2.begin(),v2.end());
53 set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v));//求交集
54 return v;
55 }
56
57 //判断vector的某一元素是否存在
58 bool is_element_in_vector(vector<int> v,int element)
59 {
60 vector<int>::iterator it;
61 it=find(v.begin(),v.end(),element);
62 if (it!=v.end())
63 {
64 return true;
65 }
66 else{
67 return false;
68 }
69 }
70
71 int main()
72 {
73 vector<int> v1,v2,v;
74 v1.push_back(22);v1.push_back(22);v1.push_back(23);v2.push_back(23);v2.push_back(24);
75 cout<<"v1是否存在1这个元素?"<<is_element_in_vector(v1,1)<<endl;
76 cout<<"对v1去重:";
77 v1=unique_element_in_vector(v1);
78 print_vector(v1);
79 cout<<endl;
80 cout<<"求v1与v2的交集:";
81 v=vectors_intersection(v1,v2);
82 print_vector(v);
83 cout<<endl;
84 cout<<"求v1与v2的并集:";
85 v=vectors_set_union(v1,v2);
86 print_vector(v);
87 return 0;
88 }
转自:https://www.cnblogs.com/mayouyou/p/8921598.html 感谢博主!
【C++】Vector判断元素是否存在,去重,求交集,求并集的更多相关文章
- JS数组操作:去重,交集,并集,差集
原文:JS数组操作:去重,交集,并集,差集 1. 数组去重 方法一: function unique(arr) { //定义常量 res,值为一个Map对象实例 const res = new Map ...
- 重学ES系列之Set实现数组去重、交集、并集、差集
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [c++]对vector<T>容器求交集,并集,去重
#include "iostream" #include "vector" #include "algorithm" //sort函数.交并 ...
- python 两个list 求交集,并集,差集
def diff(listA,listB): #求交集的两种方式 retA = [i for i in listA if i in listB] retB = list(set(listA).inte ...
- Linux 两个文件求交集、并集、差集
一.交集 sort a.txt b.txt | uniq -d 二.并集 sort a.txt b.txt | uniq 三.差集 a.txt-b.txt: sort a.txt b.txt b.tx ...
- java(List或Array数组)求交集、并集、差集, 泛型工具类
业务需要求不同类型的交集.并集.差集为避免代码冗余编写工具类. 注:list 转数组需传入数组,如果将原数组传入将会改变原数组的值,同时泛型数组又不可以实例化,解决方案:Arrays.copyOf(n ...
- STL中set求交集、并集、差集的方法
并集(http://zh.cppreference.com/w/cpp/algorithm/set_union) 交集(http://zh.cppreference.com/w/cpp/algorit ...
- javascript 数组求交集/差集/并集/过滤重复
最近在小一个小程序项目,突然发现 javscript 对数组支持不是很好,连这些基本的功能,都还要自己封装.网上查了下,再结合自己的想法,封装了一下,代码如下. //数组交集 Array.protot ...
- java集合运算:求交集,并集,集合差
今天突然想用Java实现如何用集合实现交集,并集和差集的运算了!主要是看Python语言的时候想起来的. 实现主要使用的Set集合,Set集合的特点是集合内的元素不可重复. 具体代码如何: packa ...
随机推荐
- XCTF-wtf.sh-150
wtf.sh-150 题目描述 没有描述 解题过程 打开之后是个论坛,有注册和登录功能点 抓包发现,登陆成功后会设置cookie <script>document.cookie = 'US ...
- (Py练习)日期格式转换
#将日期转换为易读的格式 #使用dateuti包 from dateutil import parser dt = parser.parse("Mar 6 2019 12:00AM" ...
- 【python】Leetcode每日一题-笨阶乘
[python]Leetcode每日一题-笨阶乘 [题目描述] 通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积.例如,factorial(10) = 10 * 9 * 8 * 7 * 6 ...
- java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
问题描述 Tomcat启动报错 java.lang.ClassNotFoundException: org.apache.jsp.index_jsp 问题原因 因为tomcat在启动过程中jsp和se ...
- Mybatis-Plus03 代码自动生成器
先看完Mybatis-Plus01和Mybatis-Plus02再看Mybatis-Plus03 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerato ...
- .NET平台系列5 .NET Core 简介
系列目录 [已更新最新开发文章,点击查看详细] 自1995年互联网战略日以来最雄心勃勃的事业 -- 微软.NET战略, 2000年6月30日. 微软公司于2002年2月13日正式推出第一代.N ...
- 有哪些适用于律师事务所的CRM系统?
中国的经济发展和政治稳定给律师行业带来了巨大的空间.而互联网的发展也让律师事务所遍地开花.如何在大大小小的律所中脱颖而出,是每个律所都迫切需要解决的问题.为了让您的律师事务所在激烈的竞争中脱颖而出,今 ...
- .NET程序崩溃了怎么抓 Dump ? 我总结了三种方案
一:背景 1. 讲故事 最近几天接到了几个crash的求助,可能这几个朋友没玩过怎么去生成dump,只能手把手教,感觉也不是一个办法,所以有必要总结一下,后续再有朋友咨询的话,我就可以把这篇文章丢过去 ...
- exit()和_exit()的区别
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/HAHAandHEHE/article/de ...
- 并发王者课-青铜5:一探究竟-如何从synchronized理解Java对象头中的锁
在前面的文章<青铜4:synchronized用法初体验>中,我们已经提到锁的概念,并指出synchronized是锁机制的一种实现.可是,这么说未免太过抽象,你可能无法直观地理解锁究竟是 ...