【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 ...
随机推荐
- MetInfo Password Reset Poisoning By Host Header Attack
if we know some user's email, the we will can reset the user's email by host header attack. The atta ...
- 面试题---->线程的入门,读完可以应付一般的面试(管理员不要移除我的随笔啊)
这个都是入门和一般的常规知识,大佬轻喷 ①.继承Thread类 ②.实现Runnable接口(常用,优点多) ③.实现Callable接口 实现Runnable和Callable接口的类只能当作一个可 ...
- 有哪些适用于律师事务所的CRM系统?
中国的经济发展和政治稳定给律师行业带来了巨大的空间.而互联网的发展也让律师事务所遍地开花.如何在大大小小的律所中脱颖而出,是每个律所都迫切需要解决的问题.为了让您的律师事务所在激烈的竞争中脱颖而出,今 ...
- [Django框架 - 注意事项,安装,项目搭建,小白必会三板斧]
[Django框架 - 注意事项,安装,项目搭建,小白必会三板斧] 想要正常运行django项目所需要知道的注意事项 1. 计算机名称不能有中文,不然bug在哪儿你都不知道! 2. 项目名和py文件名 ...
- str.isdigit()可以判断变量是否为数字
字符串.isdigit()可以判断变量是否为数字 是则输出True 不是则输出False 好像只能字符串
- 微服务·API文档
阅文时长 | 3.92分钟 字数统计 | 2754.05字符 主要内容 | 1.什么是API文档 2.API文档的使用 3.声明与参考资料 『微服务·API文档』 编写人 | SCscHero 编写时 ...
- 完美解决MSSQL安装问题“Polybase要求安装Oracle JRE 7更新51(64位)”方案
阅文时长 | 0.72分钟 字数统计 | 1164.8字符 主要内容 | 1.问题起因及解决方案 2.安装jdk-8u241-windows-x64 3.取消PolyBase查询服务 4.四.声明与参 ...
- [刷题] 79 Word Search
要求 给定一个二维平面的字母和一个单词,从一个字母出发,横向或纵向连接二维平面上的其他字母 同一位置的字母只能使用一次 示例 board = [ ['A','B','C','E'], ['S' ...
- linux自动化交互脚本expect详解set timeout 5是 意思是在expect语句中,5s后超时,不再作出选择。
linux自动化交互脚本expect详解 更新时间:2020年10月21日 10:13:20 作者:lendsomething 这篇文章主要介绍了linux自动化交互脚本expect的相 ...
- Python 简单的龟鱼游戏
游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10 游戏生成1只乌龟和10条鱼 他们的移动方向均随机 乌龟的 ...