pair
pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同。
pair <int,string>a;
pair a("James", "Joy");
由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef
简化声明。
typedef pair author;
author pro("May", "Lily");
对于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员,使用.
访问,赋值。
make_pair
可以使用make_pair对已存在的两个数据构造一个新的pair类型。
两者效果一样:
pair<string,int>("sn001", 12.5);
make_pair("sn001", 12.5);
pair比较大小
template<class _Ty1,class _Ty2>
inline bool operator<(const pair<_Ty1, _Ty2>& _Left,
const pair<_Ty1, _Ty2>& _Right)
{ // test if _Left < _Right for pairs
return (_Left.first < _Right.first ||
!(_Right.first < _Left.first) && _Left.second < _Right.second);
}