1.pair的用法:
- pair<T1,T2>p , 创建一个空的pair对象,元素分别为T1,T2.
- pair<T1,T2>p(v1,v2) ,创建一个pair对象,元素类型为T1,T2,first为v1,first为v2
- mair_pair(v1,v2) , 以v1,v2创建一个新的pair对象
- p1<p2 , 遵循字典次序,如果p1.first = p2.first,比较p2的大小,如果是升序则返回true
- p.first , 返回p1中的首个成员
2.pair的创建和初始化
在创建pair对象时,必须提供两个类型名,两个对应的类型名的类型不必相同
pair<string ,string>a;
pair<string , int >a;
pair<string , vector<int> >a;
也可以在定义的同时进行成员初始化:
pair<string , string >a("tom","bob");
pair<string , int >a("tom",20);
如果定义多个相同的pair类型对象,可以使用typedef简化声明:typedef pair<string , string> aa;
3.pair对象的操作
访问两个元素的操作可以通过first和second:
pair<int ,double>p;
p.first = 1;
p.second = 1.0;
4.生成新的pair对象
可以利用make_pair创建新的pair对象:
pair<int, double>p1;
p1 = make_pair(1,1.0);
5.通过tie获取pair元素值
某些情况会以pair对象作为返回值,可以通过std::tie接收。
std::pair<std::string , int>getperson(){
return std::make_pair("tom",20);
}
int main(){
std::string name;
it age;
std::tie(name , age) = getperson();
std::cout<<"name:"<<name<<",age:"<<age<<std::endl;
return 0;
}
摘抄,
end.