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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/781006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TSINGSEE青犀智慧工厂视频汇聚与安全风险智能识别和预警方案

在智慧工厂的建设中&#xff0c;智能视频监控方案扮演着至关重要的角色。它不仅能够实现全方位、无死角的监控&#xff0c;还能够通过人工智能技术&#xff0c;实现智能识别、预警和分析&#xff0c;为工厂的安全生产和高效运营提供有力保障。 TSINGSEE青犀智慧工厂智能视频监…

PaddleGAN快速让你的照片动起来

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.30 Last edited: 2024.03.30 目录 PaddleGAN快速让你的照片动起来 两个方案让照片动起来 方案一&#xff1a;FirstOrder 下载Paddle…

CAPL实现关闭TCP连接的几种方式以及它们的区别

在讲正文前,我们有必要复习下关闭TCP连接的过程:四次挥手。 假设A和B建立TCP连接并进行数据传输,当A的数据发送完后,需要主动发起断开连接的请求: A发送FIN报文,发起断开连接的请求B收到FIN报文后,首先回复ACK确认报文B把自己的数据发送完,发送FIN报文,发起断开连接的…

uniapp中安装vant2

1.uniapp项目搭建 因为是安装vant2所以项目选择vue2&#xff0c;如果vue3项目的话安装vant3 2.安装vant npm i vantlatest-v2 3.在main.js文件引入挂载vant 说明&#xff1a;// #ifndef VUE3这里是vue2模板用来挂载注册组件的地方&#xff1b;// #ifdef VUE3这里是vue3模板…

服务器操作系统有几种?

众所周知&#xff0c;电脑上的一切正常运作都不可缺电脑操作系统的使用&#xff0c;网络服务器做为这种出示服务项目的服务器&#xff0c;或许都是不可 或缺的电脑操作系统。常用的网络服务器电脑操作系统有许多&#xff0c;比如&#xff1a;Windows、Linux、Unix等等&#xff…

Spring Boot简介及案例

文章目录 Spring Boot简介以下是一个简单的 Spring Boot Web 应用实例**步骤 1&#xff1a;创建 Spring Boot 项目****步骤 2&#xff1a;编写 RESTful 控制器****步骤 3&#xff1a;配置主类****步骤 4&#xff1a;运行并测试应用** Spring Boot简介 Spring Boot 是一个用于简…

Linux服务器进程自动停止/终结

记录一个现场问题&#xff1a;Linux服务器中的服务进程莫名被杀死&#xff0c;或者启动失败 情况说明&#xff1a;现场是一台Linux的suse系统服务器&#xff0c;前一天客户反应服务有异常&#xff0c;登录查看发现所有的服务进程都没有启动&#xff0c;以为是客户重启服务器了&…

K8S Pod 水平自动扩缩容 HPA

介绍 HPA&#xff08;Horizontal Pod Autoscaler&#xff09;水平扩缩意味着可根据观察到的CPU、内存使用率或自定义度量标准来自动扩展或缩容Pod的数量&#xff08;Deployment、StatefulSet 或其他类似资源&#xff09;。与“垂直”扩缩不同&#xff0c;对于 K8S&#xff0c;…

canvas跟随鼠标画有透明度的矩形边框

提示&#xff1a;canvas跟随鼠标画有透明度的矩形边框 文章目录 前言一、跟随鼠标画有透明度的矩形边框总结 前言 一、跟随鼠标画有透明度的矩形边框 test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

【动手学深度学习-pytorch】9.2长短期记忆网络(LSTM)

长期以来&#xff0c;隐变量模型存在着长期信息保存和短期输入缺失的问题。 解决这一问题的最早方法之一是长短期存储器&#xff08;long short-term memory&#xff0c;LSTM&#xff09; (Hochreiter and Schmidhuber, 1997)。 它有许多与门控循环单元&#xff08; 9.1节&…

HTX Ventures:为什么BounceBit可能成为新的BTC生态解决方案?

随着BTC现货ETF的通过&#xff0c;全球各大机构和个人都在不断加码对BTC的持仓&#xff0c;BTC价格也随之上升&#xff0c;目前已上升至全球市值排名前十的资产。在本轮市场周期中&#xff0c;BTC铭文和BTC扩容是两个被市场高度关注的细分赛道。BTC生态资产的多元化收益探索正在…

mydumper和myloader对MySQL数据备份和恢复

安装教程省略 一、mydumper数据备份 mydumper -u root -p 123456 -P 3306 -B db1 -o /data/20240329root&#xff1a;数据库用户名 123456&#xff1a;密码 3306&#xff1a;端口 db1&#xff1a;数据库库名 /data/20240329&#xff1a;导出的备份文件存放位置 导出的数据文…

Django详细教程(一)

文章目录 一、安装Django二、创建项目1.终端创建项目2.Pycharm创建项目&#xff08;专业版才可以&#xff09;3.默认文件介绍 三、创建app1.app介绍2.默认文件介绍 四、快速上手1.写一个网页步骤1&#xff1a;注册app 【settings.py】步骤2&#xff1a;编写URL和视图函数对应关…

mysql权限相关操作

创建mysql用户并开通某数据库的特定权限 CREATE USER username% IDENTIFIED BY 123456; GRANT INSERT,DELETE,UPDATE,SELECT ON xxxdb.* TO username%; GRANT ALL PRIVILEGES ON caieinstitute.* TO caie%;//给全部管理权限 修改某用户登录所需使用的IP select * from user w…

面试题:@Component, @Service, @Repository, @Controller 注解的区别与用途

在Spring框架中&#xff0c;Component, Service, Repository, 和 Controller 都是用来标记Bean并将其纳入Spring IoC容器管理的注解&#xff0c;它们的主要区别在于用途和语义上的强调&#xff0c;旨在提高代码的可读性和更好的组织架构。 1. Component - 用途这是Spring中定…

基于微信小程序的校园服务平台设计与实现(程序+论文)

本文以校园服务平台为研究对象&#xff0c;首先分析了当前校园服务平台的研究现状&#xff0c;阐述了本系统设计的意义和背景&#xff0c;运用微信小程序开发工具和云开发技术&#xff0c;研究和设计了一个校园服务平台&#xff0c;以满足学生在校园生活中的多样化需求。通过引…

最优算法100例之13-输出第n个丑数

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当…

使用Hive对HDFS中数据查询的优点

目录 摘要一、Hive是什么二、HDFS是什么三、Hive与HDFS的关系四、什么是HiveQL五、什么是mapreduce六、Hive如何将查询转为mapreduce任务七、Hadoop生态系统中的高性能引擎八、使用Hadoop的优点 摘要 Hadoop生态系统中包含了多个关键组件&#xff0c;如Hive、HDFS、MapReduce等…

Typora:一款值得尝试的Markdown编辑器

引言&#xff1a; 随着博客的兴起&#xff0c;越来越多的人开始写博客。而Markdown作为一种轻量级标记语言&#xff0c;因其简洁、易读、易写、易转换等特点而被广泛使用。Markdown的语法简单易学&#xff0c;使用起来也比较方便。但是&#xff0c;为了更好地使用Markdown&…

3.滑行。

3.滑行 - 蓝桥云课 (lanqiao.cn) 问题描述 小蓝准备在一个空旷的场地里面滑行&#xff0c;这个场地的高度不一小蓝用一个n行m列的矩阵来表示场地&#xff0c;矩阵中的数值表示场地的高度 如果小蓝在某个位置&#xff0c;而他上、下、左、右中有一个位置的高度(严格)低于当前的高…