pair<类型1, 类型2> 变量名的介绍,自用笔记

一、pair介绍:

pair 是 C++ STL 里的模板类 ,作用就是:把两个不同 / 相同类型的值打包成一个整体 ,相当于一个简易的二元结构体

  • 功能:存储一对值(两个值)
  • 两个成员:
    • first:第一个值
    • second:第二个值

pair<类型1, 类型2> 变量名;类型1和类型2的数据类型可以不一样,如下:

复制代码
pair<int, string> p;  // 一个 int + 一个 string
pair<int, int> p;    // 两个 int

二、创建 pair 的 4 种方法

1. 空构造

复制代码
pair<int, string> p;

2. 直接赋值

复制代码
pair<int, string> p(100, "小明");

3. 用 make_pair 函数(最常用)

复制代码
auto p = make_pair(200, "小红");

4. C++11 花括号

复制代码
pair<int, string> p = {300, "小刚"};

三、访问元素

.first.second 直接访问:

复制代码
pair<int, string> p(100, "小明");

cout << p.first;   // 输出 100
cout << p.second;  // 输出 小明

四、用法:排序是优先根据.first的大小来排序,如果.first的大小一样,才会去比较.second的大小

可执行代码:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+10;
vector<pair<int,int> > a;
int main(){
a.push_back(make_pair(3,2));
a.push_back(make_pair(1,4));
a.push_back(make_pair(2,9));
cout<<"排序前:"<<endl; 
for(int i=0;i<3;i++){
	cout<<a[i].first<<" "<<a[i].second<<endl;
}
cout<<endl<<"排序后:"<<endl;
sort(a.begin(),a.end());
for(int i=0;i<3;i++){
	cout<<a[i].first<<" "<<a[i].second<<endl;
}
}

运行结果:

相关推荐
JAVA面经实录91716 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
王老师青少年编程17 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
周杰伦fans17 小时前
AutoCAD .NET 二次开发:深入理解 EntityJig 的工作原理与正确实现
开发语言·.net
叼烟扛炮17 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
天疆说17 小时前
【哈密顿力学】深入解读航天器交会最优控制中的Hamilton函数
人工智能·算法·机器学习
wuweijianlove18 小时前
关于算法设计中的代价函数优化与约束求解的技术7
算法
leoufung19 小时前
LeetCode 149: Max Points on a Line - 解题思路详解
算法·leetcode·职场和发展
样例过了就是过了19 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
HXDGCL19 小时前
矩形环形导轨:自动化循环线的核心运动单元解析
运维·算法·自动化
Bat U19 小时前
JavaEE|多线程初阶(七)
java·开发语言