类模板:template <class T1, class T2> struct pair
功能:将一组值合成一个值,比如可以表示(x,y)坐标等,class T可以为不同的数据类型。
具体使用方法:
1.定义(初始化):
pair<int, double> p1; //使用默认构造函数
pair<int, double> p2(1, 2.4); //用给定值初始化
pair<int, double> p3(p2); //拷贝构造函数
2.访问T1和T2元素的方法:
通过first,second访问,具体例子:
typedef pair<string,int> pair1; //map中键的类型
typedef pair<pair1, int> pair2; //map中元素类型
typedef map<pair1, int > map2; //int 记录pair1出现的次数
int cmp1(pair2 &a,pair2 &b)
{
return a.second > b.second;//根据map中元素的值部分进行降序排列
}
3.赋值
1)利用make_pair
对已经初始化的进行修改:
pair<int, double> p1;
p1 = make_pair(1, 1.2);
2)变量间赋值
pair<int, double> p1(1, 1.2); pair<int, double> p2 = p1;
4.简化使用
由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:
typedef pair<string,int> pair1; //map中键的类型
typedef pair<pair1, int> pair2; //map中元素类型
typedef map<pair1, int > map2; //int 记录pair1出现的次数