1.pair,当想要将两个元素绑在一起作为一个合成元素、又不想使用结构体时,pair可以很方便的作为一个代替品。也就是说,pair实际上可以作为一个内部有两个元素的结构体,且这两个元素的类型是可以指定的。
2.比较大小:
两个pair类型数据用==,!=,<等来比较大小,比较规则是先以first的大小作为标准,只有当first相等时才去判别second的大小。
3.常见用途:
- 用来代替二元结构体及其构造函数,可减少编码时间。
- 作为map的键值对来进行插入,见下面代码。
#include<stdio.h>
#include<iostream>
#include<utility>
//因为map内部实现中涉及到pair,添加map头文件会自动添加utility头文件。
#include<map>
#include<string>
using namespace std;
int main(){
//第一种构建pair
pair<string ,int> p;
p.first="lala";
p.second=4;
cout<<p.first<<" "<<p.second<<endl;
//第二种构建pair
p=make_pair("xixi",8);
cout<<p.first<<" "<<p.second<<endl;
p=pair<string ,int> ("haha",9);
cout<<p.first<<" "<<p.second<<endl;
//比较大小
pair<int ,int> p1(5,10);
pair<int ,int> p2(5,15);
pair<int ,int> p3(10,15);
if(p1<p2){
printf("p1<p2\n");
}
if(p2<p3){
printf("p2<p3\n");
}
//作为map键值对进行插入
map<string,int>mp;
mp.insert(make_pair("yeye",5));
mp.insert(pair<string ,int>("ohoh",6));
for(map<string ,int>::iterator it=mp.begin();it!=mp.end();it++){
cout<<it->first<<" "<<it->second<<endl;
}
return 0;
}