C++标准模板库(STL)用法介绍:pair
pair:可以看作是一个内部有两个元素的结构体,STL容器之一,可以将两个任何基本类型(包括STL容器)绑在一起而不用定义结构体。
使用pair前需要添加:
#include <utility>
using namespace std;
注:由于map的内部实现中涉及pair,因此可以用map头文件来代替utility
1. pair声明
pair是一个模板类,所以使用前需要声明。
//声明
pair<typename1, typename2> p;
//初始化
pair<typename1, typename2> p(a, b); //a, b是想要初始化的元素
typename1, typename2可以是任何基本类型,也可以是STL标准容器
如果只是想临时构建一个pair(通常可作为键值对插入map),可通过如下两种方法:
//直接跟在类型定义后面
pair<typename1, typename2> (a, b); //a, b是想要初始化的元素
//make_pair函数
make_pair(a, b); //a, b是想要初始化的元素
2. pair访问
pair的结构相当于下面这个二元结构体:
//pair
pair<typename1, typename2> p;
//等价二元结构体
struct p {
typename1 first;
typename2 second;
};
pair中只有两个元素,分别是first, second,只需要按正常结构体的方式去访问即可
cout << p.first << " " << p.second << endl;
3. pair用途
(1)代替二元结构体及其构造函数
(2)作为map的键值对来进行插入
注:两个pair类型数据可以直接使用==, !=, <, <=, >, >=比较大小,比较规则是先以first的大小作为标准,只有当first相等时才去判别second的大小
欢迎访问我的STL系列: