C++pair学习笔记

1. 定义

pair 是需要头文件 <utility>,可以用于存储两个不同(或相同)类型的数据 ,标志为 键值对二元组

2. 基本用法

定义:

cpp 复制代码
pair<T1,T2> name;

T1T2 为两个类型,namepair 的名称。

初始化:

C++ 复制代码
// 方式1:默认构造(值未初始化)
pair<int,string> p1;

// 方式2:直接初始化(按顺序传参)
pair<int,string> p2(1,"hello");

// 方式3:拷贝初始化
pair<int,string> p3=make_pair(2,"world");  // make_pair自动推导类型

// 方式4:C++11列表初始化
pair<int,string> p4{3,"test"};

3. 成员访问

  • 两个成员变量为公有 ,直接通过 firstsecond 访问:
C++ 复制代码
cout<<p2.first;   // 输出第一个元素(int型:1)
cout<<p2.second;  // 输出第二个元素(string型:"hello")

4. 常用操作

(1)赋值

C++ 复制代码
p1=p2;//整体赋值
p1=make_pair(5,"ok");//通过make_pair赋值,按顺序传参

(2)比较运算

支持 ==!=<<=>>=,比较规则:

  • 先比较 first,若不等则结果由 first 决定;

  • first 相等,再比较 second

C++ 复制代码
pair<int,int> a(1,2),b(1,3);

a<b;//true(first相等,second 2<3)

(3)交换

c++ 复制代码
swap(p1,p2);//交换两个pair的内容(需同类型)
相关推荐
weixin_513449962 分钟前
walk_these_ways项目学习记录第八篇(通过行为多样性 (MoB) 实现地形泛化)--策略网络
开发语言·人工智能·python·学习
LX5677716 分钟前
传统编辑如何考取AI内容编辑师认证?学习路径详解
人工智能·学习
songyuc25 分钟前
BM2『链表内指定区间反转』学习笔记
学习·链表
L16247637 分钟前
Kubernetes 完整学习手册(1 主多从 + 纯 YAML 部署 + 访问原理)
学习·容器·kubernetes
君义_noip1 小时前
信息学奥赛一本通 4150:【GESP2509七级】⾦币收集 | 洛谷 P14078 [GESP202509 七级] 金币收集
c++·算法·gesp·信息学奥赛·csp-s
weixin_513449961 小时前
walk_these_ways项目学习记录第七篇(通过行为多样性 (MoB) 实现地形泛化)--核心环境下
人工智能·python·学习
Ricky_Theseus1 小时前
静态链接与动态链接
c++
澈2071 小时前
双指针,数组去重
c++·算法
小辉同志2 小时前
207. 课程表
c++·算法·力扣·图论