【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 ...
随机推荐
- 在kubernetes上运行WASM负载
在kubernetes上运行WASM负载 WASM一般用在前端业务中,但目前有扩展到后端服务的趋势.本文使用Krustlet 将WASM服务部署到kubernetes. 简介 Krustlet 是一个 ...
- 【报错】No converter found for return value of type: class java.util.HashMap
ssm开发碰到的错误 @ResponseBody的作用是是将java对象转为json格式的数据 @ResponseBody注解标识该方法的返回值直接写回到HTTP响应体中去(而不会被被放置到Model ...
- 联想R720Y空间问题
由于之前Y空间在启动项中,所以将他关闭,这次想找到他却找不到 备注:因为在解决问题前,没有把图片保存下来,所以下面用一个颜色框挡住,表示之前的效果 第一个问题 在电脑上找到Y空间 百度上很多说在开始中 ...
- mysql.data.entityframeworkcore 已弃用
转官网有方案: https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html General R ...
- Elasticsearch数据库优化实战:让你的ES飞起来
摘要:ES已经成为了全能型的数据产品,在很多领域越来越受欢迎,本文旨在从数据库领域分析ES的使用. 本文分享自华为云社区<Elasticsearch数据库加速实践>,原文作者:css_bl ...
- Promise解析(待完成)
Promise是一种异步操作的解决方案,将写法复杂的传统的回调函数和监听事件的异步操作,用同步代码的形式表达出来.避免了多级异步操作的回调函数嵌套. 1.主要用于异步计算 2.可以将异步操作队列化,按 ...
- ZOHO荣登“2020中国ToB行业年度企业影响力”榜单
近日,3WToB行业头条正式揭晓<2020中国ToB行业年度榜单 · 企业影响力榜>. 此次评选,ToB行业头条联合3W集团.50+知名投资机构.60+权威媒体及资深行业人士,进行深度调研 ...
- C#是怎么跑起来的
解释流程前,需要了解一些基本的概念. 基本概念解释: CPU :中央处理器,计算机的大脑,内部由数百万至数亿个晶体管组成,是解释和运行最终转换成机器语言(二进制代码)的地方.机器语言是通过CPU内存的 ...
- 『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化
目录 1.用户自定义变量介绍 2.使用"用户自定义变量"实现参数化 (1)测试计划内包含的元件 (2)数据文件内容 (3)测试计划界面内容 (4)线程组元件内容 (5)CSV数据文 ...
- [Qt] 编译问题
shadow build https://blog.csdn.net/cjmcp/article/details/14135191 https://blog.csdn.net/josephfeng/a ...