一、pair概述、定义:
pair包含两个数值,是一种模板类型,在创建pair对象时必须提供两个类型名(不必相同)
pair<T1, T2> p1; // 使用默认构造创建一个空的pair对象,两个元素分别是T1和T2类型
pair<T1, T2> p1(v1, v2); // 采用值初始化,first成员初始化为v1,second成员初始化为v2
make_pair(v1, v2); // 函数,以v1和v2的值创建一个新的pair对象,元素类型分别是v1和v2;
p1.first; // 返回对象中名为first的公有数据成员
p1.second; // 返回对象中名为second的公有数据成员
二、创建pair对象:
pair<string, string> p1; // 创建一个空对象,两个元素类型都是string
pair<string, int> p2; // 创建一个空对象,两个元素类型分别时string和int
pair<string, vector<int> > p3 // 创建一个空对象,两个元素类型分别是string和vector
注意下面两个定义:
std::pair<int, float> (1, 1.1); // second变量是float类型
std::make_pair (1, 1.1); // 该函数会将second变量都转换成double类型
三、在定义时进行成员初始化:
pair<string, string> p1("Bittle", "Ann");
pair<string, int> p2("John", 18);
pair<string, int> p3(p2); // 拷贝构造初始化
使用 typedef 简化声明:
typedef pair<string, string> PSS;
PSS p1("Jackson", "Lina");
四、变量间赋值:
pair<int, double> p1(1, 1.1);
pair<int, double> p2(p1);
pair<int, double> p3;
p3=p1;
五、pair对象的操作:
pair<int, double> p1;
p1.first = 1;
p1.second = 1.2;
cout<<p1.first<<' '<<p1.second<<endl;
六、生成新的pair对象:
pair<int, double> p1;
p1 = make_pair(1, 1.2); // 利用make_pair函数创建新的pair对象并赋值给p1
int a = 8;
string m = "Jackson";
pair<int, string> p2;
p2 = make_pair(a, m); // ***
五、通过 tie 获取 pair 元素值
暂无