C++中,判断某个自定义结构体是否在该结构体的vector中

demo1源码:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct PushStreamIpAndPort
{
	std::string     ip="";
	int             port=0;
	// 重载相等运算符 == :可不用
	bool operator==(const PushStreamIpAndPort &other) {
		return this->port == other.port && this->ip == other.ip;
	}
	
	PushStreamIpAndPort() {}

    // 重载构造函数去快速赋值:可不用
	PushStreamIpAndPort(const std::string t_ip, const int t_port) 
	{
		ip = t_ip;
		port = t_port;
	}
};

int main() {
	
	PushStreamIpAndPort a;
	PushStreamIpAndPort b;
	
	a.ip = "127.0.0.1";
	a.port = 10000;
	
	b.ip = "127.0.0.1";
	b.port = 10000;
	
	PushStreamIpAndPort c = PushStreamIpAndPort("127.0.0.1", 10001);
	
	vector<PushStreamIpAndPort> v;
	v.push_back(a);
	v.push_back(b);
	
//	if(a==b){
//		cout<<"相等"<<endl;
//	}else{
//		cout<<"不相等"<<endl;
//	}

	
	auto it = std::find(v.begin(), v.end(), c);
	if(it != v.end())
	{
		cout<<"在内部"<<endl;
	}
	else{
		cout<<"不在内部"<<endl;
	}
	
	return 0;
}

demo2源码:自动排除相同值

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct PushStreamIpAndPort
{
	std::string     ip="";
	int             port=0;
	// 重载相等运算符 ==
	bool operator==(const PushStreamIpAndPort &other) {
		return this->port == other.port && this->ip == other.ip;
	}
	
	PushStreamIpAndPort() {}
	PushStreamIpAndPort(const std::string t_ip, const int t_port) 
	{
		ip = t_ip;
		port = t_port;
	}
};

int main() {
	
	PushStreamIpAndPort a("127.0.0.1", 10000);
	PushStreamIpAndPort b("127.0.0.1", 10000);
	PushStreamIpAndPort c("127.0.0.1", 10001);
	
	vector<PushStreamIpAndPort> v;
	
	// 检查要添加的元素是否已经存在于 vector 中
	if (find(v.begin(), v.end(), a) == v.end()) {
		v.push_back(a);
	}
	if (find(v.begin(), v.end(), b) == v.end()) {
		v.push_back(b);
	}
	if (find(v.begin(), v.end(), c) == v.end()) {
		v.push_back(c);
	}
	
	for (const auto &elem : v) {
		cout << "IP: " << elem.ip << ", Port: " << elem.port << endl;
	}
	return 0;
}

相关推荐

  1. Go定义结构

    2024-03-29 11:38:04       39 阅读
  2. C语言-----定义类型-----结构

    2024-03-29 11:38:04       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-29 11:38:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-29 11:38:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-29 11:38:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-29 11:38:04       20 阅读

热门阅读

  1. TCP/IP参考模型(四层及其解析)

    2024-03-29 11:38:04       24 阅读
  2. MySQL学习必备SQL_DDL_DML_DQL

    2024-03-29 11:38:04       21 阅读
  3. vue.js 开发如何应用“软件工程“的原则?

    2024-03-29 11:38:04       21 阅读
  4. ARM day8作业

    2024-03-29 11:38:04       22 阅读
  5. 完整的FPGA设计流程包括哪些?

    2024-03-29 11:38:04       23 阅读
  6. 微信小程序预先加载服务器的图片

    2024-03-29 11:38:04       18 阅读
  7. 十一、Spring源码学习之registerListeners方法

    2024-03-29 11:38:04       18 阅读
  8. FFMPEG对于处理rtp流出现马赛克问题处理

    2024-03-29 11:38:04       20 阅读
  9. Linux curl 类似 postman 直接发送 get/post 请求

    2024-03-29 11:38:04       24 阅读
  10. 大数据导论-大数据分析——沐雨先生

    2024-03-29 11:38:04       20 阅读
  11. 一些常见的zookeeper问题和答案

    2024-03-29 11:38:04       22 阅读
  12. Pytorch:torchvision.transforms.Compose

    2024-03-29 11:38:04       20 阅读
  13. 公网部署ctfd+ctfd_whale问题解决

    2024-03-29 11:38:04       20 阅读
  14. 关于docker-Engine使用的存储驱动devicemapper的常识

    2024-03-29 11:38:04       21 阅读
  15. git2consul+consul+gitlab连接

    2024-03-29 11:38:04       18 阅读
  16. element el-table表格默认勾选toggleRowSelection失效问题

    2024-03-29 11:38:04       19 阅读