当前位置: 代码迷 >> 综合 >> pair 的用法
  详细解决方案

pair 的用法

热度:67   发布时间:2023-11-18 03:44:36.0

类模板 : template<class T1, class T2> struct pair

参数 : T1是第一个值得数据类型,T2是第二个值得数据类型

功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个

公共函数first和second访问

具体用法

1定义(构造):

pair<int, double> p1;  //使用默认构造函数
pair<int, double> p2(1, 2.4);  //用给定值初始化
pair<int, double> p3(p2);  //拷贝构造函数

2访问两个元素(通过first和second):

pair<int, double> p1;  //使用默认构造函数
p1.first = 1;
p1.second = 2.5;
cout << p1.first << ' ' << p1.second << endl;
//输出结果为 :1 2.5

3赋值

(1)利用mark_pair

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

(2) 变量间的赋值

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

pair还经常在map中用作插入元素

map<string, int> word_count;
pair<string,int> p_count;
p_count = make_pair("word",3);//make_pair(),返回一个pair类型
cout << p_count.first << endl; //输出p_count的key,也就是"word";
cout << p_count.second << endl; //输出p_count的value,也就是3
word_count.insert(make_pair("word1",2));
map<string, int>::iterator mit;
mit = word_count.begin();
cout << mit->first << endl;
cout << mit->first << endl; //分别输出“word1”,和2


还有就是:

                     pair 是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,
如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回
2个数据的时候,可以选择pair。pair的实现是一个结构体,主要的两个成员变量是first
second因为是使用struct不是class,所以可以直接使用pair的成员变量。