详解模版类pair
目录
一、pair简介
二、 pair的创建
三、pair的赋值
四、pair的排序
(1)用sort默认排序
(2)用sort中的自定义排序进行排序
五、pair的交换操作
一、pair简介
- pair是一个模版类,可以存储两个值的键值对.first以及.second。
- 常见用途:1️⃣用于需要返回两个值的函数; 2️⃣用于容器的元素,如std::map,std::set;
- pair包含在头文件#include <utility>
二、 pair的创建
(1)默认构造函数:空的pair对象。
// 1. 默认构造函数,即创建空的 pair 对象
pair <DataType1, DataType2> pair1;
三、pair的赋值
(1)直接在构造的时候进行赋值有初始值的pair对象。
// 2. 直接使用 2 个元素初始化成 pair 对象
pair <DataType1, DataType2> pair2(DataType1_Value, DataType2_Value);
(2)拷贝已有对象赋值。
// 3. 拷贝构造函数:即借助另一个 pair 对象,创建新的 pair 对象
pair <DataType1, DataType2> pair3(pair2);
(3)为pair单个值赋上对应值。
pair<string,int> pair1;
pair1.first = "baidu";
pair1.second = 34;
四、pair的排序
(1)用sort默认排序
现将第一个元素.first进行比较,如果相等,再比较.second
#include <iostream>
#include <algorithm>
#include <utility>using namespace std;int main(void){vector<pair<int,int>> p;p.push_back({7,8});p.push_back({5,6});p.push_back({3,4});p.push_back({1,2});sort(p.begin(),p.end());for(int i=0;i<p.size();i++){cout<<p[i].first<<" "<<p[i].second<<endl;}
}
(2)用sort中的自定义排序进行排序
这里举例由大到小的排序顺序:
#include <iostream>
#include <algorithm>
#include <utility>using namespace std;bool cmp(pair<int,int> a,pair<int,int> b){if(a.first!=b.first){return a.first>b.first;}else{return a.second>b.second;}
}int main(void){vector<pair<int,int>> p;p.push_back({1,2});p.push_back({3,4});p.push_back({5,6});p.push_back({7,8});sort(p.begin(),p.end(),cmp);for(int i=0;i<p.size();i++){cout<<p[i].first<<" "<<p[i].second<<endl;}
}
运行结果:

五、pair的交换操作
#include <iostream>
#include <algorithm>
#include <utility>using namespace std;int main(void){pair<int,int> a({1,2});pair<int,int> b({3,4});cout<<a.first<<" "<<a.second<<endl;cout<<b.first<<" "<<b.second<<endl;a.swap(b);cout<<a.first<<" "<<a.second<<endl;cout<<b.first<<" "<<b.second<<endl;
}
运行结果:

相关文章:
详解模版类pair
目录 一、pair简介 二、 pair的创建 三、pair的赋值 四、pair的排序 (1)用sort默认排序 (2)用sort中的自定义排序进行排序 五、pair的交换操作 一、pair简介 pair是一个模版类,可以存储两个值的键值对.first以…...
AI驱动的桌面笔记应用Reor
网友 竹林风 说,已经成功的用 mxbai-embed-large 映射到 text-embedding-ada-002,并测试成功了。不愧是爱折腾的人,老苏还没时间试,因为又找到了另一个支持 AI 的桌面版笔记 Reor Reor 简介 什么是 Reor ? Reor 是一款由人工智…...
搜维尔科技:使用sensglove触觉反馈手套进行虚拟拆装操作
使用sensglove触觉反馈手套进行虚拟拆装操作 搜维尔科技:使用sensglove触觉反馈手套进行虚拟拆装操作...
深入理解电子邮件安全:SPF、DKIM 和 DMARC 完全指南
引言 在当今数字时代,电子邮件已经成为我们日常通信中不可或缺的一部分。然而,随之而来的安全问题也日益突出。邮件欺诈、钓鱼攻击和垃圾邮件等威胁不断增加,这促使了多种邮件安全验证机制的出现。本文将深入探讨三个最重要的邮件安全协议&a…...
【有啥问啥】复习一下什么是NMS(非极大值抑制)?
复习一下什么是NMS(非极大值抑制)? 什么是NMS? NMS(Non-Maximum Suppression)即非极大值抑制,是一种在计算机视觉领域,尤其是目标检测任务中广泛应用的后处理算法。其核心思想是抑…...
Java-异步方法@Async+自定义分布式锁注解Redission
如果你在使用 @Async 注解的异步方法中,使用了自定义的分布式锁注解(例如 @DistributedLock),并且锁到期后第二个请求并没有执行,这可能是由于以下几个原因导致的: 锁的超时时间设置不当:锁的超时时间可能设置得太短,导致锁在业务逻辑执行完成之前就已经自 动释放。…...
基本定时器---内/外部时钟中断
一、定时器的概念 定时器(TIM),可以对输入的时钟信号进行计数,并在计数值达到设定值的时候触发中断。 STM32的定时器系统有一个最为重要的结构是时基单元,它由一个16位计数器,预分频器,和自动重…...
实现了两种不同的图像处理和物体检测方法
这段代码实现了两种不同的图像处理和物体检测方法:一种是基于Canny边缘检测与轮廓分析的方法,另一种是使用TensorFlow加载预训练SSD(Single Shot Multibox Detector)模型进行物体检测。 1. Canny边缘检测与轮廓分析: …...
如何在MindMaster思维导图中制作PPT课件?
思维导图是一种利用色彩、图画、线条等图文并茂的形式,来帮助人们增强知识或者事件的记忆。因此,思维导图也被常用于教育领域,比如:教学课件、读书笔记、时间管理等等。那么,在MindMaster免费思维导图软件中࿰…...
ORIN NX 16G安装中文输入法
刷机版本为jetpack5.14.刷机之后预装了cuda、cudnn、opencv、tensorrt等,但是发现没有中文输入,所以记录一下安装流程。 jetson NX是arm64架构的,sougoupinyin只支持adm架构的,所以要选择安装Google pinyin 首先打开终端&#x…...
【金融风控项目-07】:业务规则挖掘案例
文章目录 1.规则挖掘简介2 规则挖掘案例2.1 案例背景2.2 规则挖掘流程2.3 特征衍生2.4 训练决策树模型2.5 利用结果划分分组 1.规则挖掘简介 两种常见的风险规避手段: AI模型规则 如何使用规则进行风控 **使用一系列逻辑判断(以往从职人员的经验)**对客户群体进行区…...
退款成功订阅消息点击后提示订单不存在
问题表现: 退款成功发送的小程序订阅消息点击进入后提示订单不存在。 修复方法: 1.打开文件app/services/message/notice/RoutineTemplateListService.php 2.找到方法sendOrderRefundSuccess 3.修改图中红圈内的链接地址 完整方法代码如下 /*** 订…...
实验一 顺序结构程序设计
《大学计算机﹣C语言版》实验报告 实验名称 实验一 顺序结构程序设计 实验目的 (1)掌握C语言中常量和变量的概念。 (2)掌握C语言中常见的数据类型。 (3)掌握C语言中变量的定义和赋值方法。 …...
Elasticsearch搜索流程及原理详解
Elasticsearch搜索流程及原理详解 1. Elasticsearch概述1.1 简介1.2 核心特性1.3 应用场景2. Elasticsearch搜索流程2.1 搜索请求的发起2.2 查询的执行2.3 结果的聚合与返回3. Elasticsearch原理详解3.1 倒排索引3.2 分布式架构3.3 写入流程3.4 读取流程4. 技术细节与操作流程4…...
芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号)
芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号) 本期是平台君和您分享的第113期内容 前一段时间,高通公司(Qualcomm)发布安全警告称,提供的60多款芯片潜在严重的“零日漏洞”,芯片安全再一次暴露在大众视野。 那什么是“零日漏洞”?平台君从网上找了一段…...
【gitlab】gitlabrunner部署
1、下载镜像 docker pull gitlab/gitlab-runner:latest 2、启动gitrunner容器 docker run -d --name gitlab-runner --restart always \ -v /root/gitrunner/config:/etc/gitlab-runner \ ///gitlab-runner的配置目录,挂载在宿主机上方便修改,里面有config.…...
Flink监控checkpoint
Flink的web界面提供了一个选项卡来监控作业的检查点。这些统计信息在任务终止后也可用。有四个选项卡可以显示关于检查点的信息:概述(Overview)、历史(History)、摘要(Summary)和配置(Configuration)。下面依次来看这几个选项。 Overview Tab Overview选项卡列出了以…...
Ribbon 入门实战指南
Ribbon 是 Netflix 开发的一个开源项目,用于实现客户端负载均衡功能。它在微服务架构中广泛使用,并且是 Spring Cloud 生态中的重要组成部分。本文将带你从基础入门,逐步掌握如何在 Spring Cloud 项目中使用 Ribbon 实现客户端负载均衡。 1 负…...
uniapp: 微信小程序包体积超过2M的优化方法(主包从2.7M优化到1.5M以内)
一、问题描述 在使用uniapp进行微信小程序开发时,经常会遇到包体积超过2M而无法上传: 二、解决方案 目前关于微信小程序分包大小有以下限制: 整个小程序所有分包大小不超过 30M(服务商代开发的小程序不超过 20M) 单个…...
【百日算法计划】:每日一题,见证成长(026)
题目 给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。 表达式仅包含非负整数,, - ,,/ 四种运算符和空格 。 整数除法仅保留整数部分。 * * 示例 1: 输入: “32X2” 输出: 7 import…...
木马与恶意软件深度实战:查杀原理 + 免杀对抗全攻略(2026 珍藏版)
木马与恶意软件深度实战:查杀原理 免杀对抗全攻略(2026 珍藏版) 在网络安全的攻防对抗中,木马(Trojan Horse) 是最经典、最具代表性的恶意软件之一。它以 “伪装欺骗” 为核心手段,以 “远程控…...
颠覆式音频编辑:Audacity AI插件的OpenVINO技术应用指南
颠覆式音频编辑:Audacity AI插件的OpenVINO技术应用指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 一、价值定位:重新定义音频处理效率边界 在数字内容创作领域,音频后期…...
神经信号干扰器:让脑机监控读取错误数据
在软件测试领域,精准的数据采集与分析是保障产品质量的核心。随着脑机接口(BCI)技术在测试工具中的广泛应用,神经信号监控已成为提升缺陷检出率和决策效率的关键手段。然而,神经信号干扰器的出现,正悄然威胁…...
TensorRT C#封装库深度评测:比Python快多少?工业级模型部署实战(附性能对比)
TensorRT C#封装库工业级性能对决:量化实测与实战调优指南 当工业级应用遇上AI推理,毫秒级延迟差异可能意味着数百万的产线损失。本文将带您深入实测TensorRT C#封装库与Python原生接口的性能鸿沟,并揭示如何在高并发PLC系统中实现亚毫秒级稳…...
腰酸、失眠、伴侣打鼾……你的睡眠痛点,梦百合AI-Smart 3.0都懂
你是否有过这样的经历:睡了一整夜,醒来却腰酸背痛?躺在床上辗转反侧,大脑却清醒如初?又或者,被枕边人的鼾声折磨得彻夜难眠?这些睡眠困扰,已成为现代人的普遍常态。中国睡眠研究会20…...
四、MAVROS功能包的offboard模式实现无人机精准悬停控制
1. Offboard模式与MAVROS基础解析 第一次接触无人机Offboard控制时,我盯着PX4官方文档里那句"必须保持2Hz以上指令频率"发了半小时呆——直到Gazebo里的无人机第七次摔成零件状态才明白,原来飞控和MAVROS的通信就像谈恋爱,消息发得…...
Zig语言实战:5分钟搞定HTTP客户端与服务端开发(附完整代码)
Zig语言Web开发实战:从零构建HTTP客户端与服务端 最近在探索新兴系统编程语言时,Zig以其简洁的语法和强大的性能引起了我的注意。特别是它的标准库中内置了完整的HTTP支持,这让Web服务开发变得异常简单。本文将带你快速上手Zig语言的Web开发&…...
Gitee崛起:国产项目管理平台如何改写中国企业协作规则书
当GitHub因网络波动导致中国开发者集体"失联",当Jira的英文界面让非技术团队成员望而却步,一个不容忽视的事实正在显现:中国企业需要真正懂本土需求的项目管理解决方案。在这个被国际巨头长期主导的领域,Gitee正以一系列…...
SEO_从零开始,手把手教你制定SEO优化方案(216 )
SEO:从零开始,手把手教你制定SEO优化方案 在当今互联网时代,搜索引擎优化(SEO)已经成为任何网站希望获得高流量和高曝光的关键。对于新手来说,SEO可能看起来复杂且充满谜团。本文将从零开始,手把手教你如何…...
htcw_esp_panel:ESP32嵌入式显示与触摸的编译期硬件抽象框架
1. htcw_esp_panel:面向嵌入式显示与人机交互的全栈式硬件抽象层htcw_esp_panel 是一个专为 ESP32 系列 SoC(包括 ESP32-S2/S3/C3/P4)设计的轻量级、可配置化硬件抽象库。它并非简单的驱动封装,而是一套覆盖显示、触摸、按键、SD …...
