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.1是float类型的
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上更新有关前端和算法的相关内容,希望大家多多捧场!三连会一个个回访的!谢谢大家!!!