c++pair对组详解

pair(对组)是一对数据组合成一个组数据,STL中的map就是将key-value放在一起作为一组数据保存

基本特性

pair是一种模板类型,其中包含两个数据值,两个数据的类型是可以不同的

pair<int , int> 可以是两个相同的数据类型
pair<int , double>也可以是两个不同的数据类型

创建pair(构造pair)

和容器那些的创建很类似,pair也有自己的构造方法
1.默认构造方法

pair<int, double> p1;

2.定值初始化

pair<int, double> p1(1, 1.2);

3.make_pair

pair<int, int > p1= make_pair(1, 2);

!注意
因为pair可以接受隐式的类型转换,所以在使用make_pair的时候我们要注意这点

pair<int, float>(1, 1.1); 
因为前面已经指定了pair的两个数据类型,所以1.1float类型的

make_pair(1, 1.1); 
make_pair方法只是创建一个pair,并没有指定数据类型,所以这里的1.1会自动匹配成double类型

4.拷贝构造函数

pair<int, double> p1(1, 1.2);
pair<int, double> p2(p1);

关于pair的一些操作

1.访问pair的两个值
每个pair 都有两个属性值 first 和second,我们可以用这两个属性来访问相应的值

pair<int, int> p1(1, 2);
cout<<p1.first<<" "<<p1.second<<endl;
输出1 2

我们也可以通过属性值来修改相应的值

pair<int, int> p1(1, 2);
p1.first = 100;
p1.second = 200;
cout<<p1.first<<" "<<p1.second<<endl;
输出100 200

2.比较大小
pair比较大小是遵循字典序的

pair<int, int> p1(1, 2);
pair<int, int> p2(1, 3);
bool result = p1 > p2;
cout<<result<<endl;
输出0

如上代码,先判断p1.first是否大于p2.first,如果大于直接返回,如果不大于就再判断p1.second和p2.second的大小关系

大家好我是程序员云锦,这是我在csdn的第一篇文章,我的方向是前端以及算法,今后会在csdn上更新有关前端和算法的相关内容,希望大家多多捧场!三连会一个个回访的!谢谢大家!!!

Guess you like

Origin blog.csdn.net/m0_61607810/article/details/120855523