标签: it |
(转)
Pair类型概述
pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:
pair a;
表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。
pair a("James", "Joy");
也可以像上面一样在定义的时候直接对其初始化。
由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:
typedef pair author;
author pro("May", "Lily");
author joye("James", "Joyce");
Pair对象的操作
-
对于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员
pair a("Lily", "Poly");
string name;
name = pair.second;
- 生成新的pair对象
可以使用make_pair对已存在的两个数据构造一个新的pair类型:
int a = 8;
string m = "James";
pair newone;
newone = make_pair(a, m);
对pair里的元素进行排序,一般是对第一个first进行排序,second也跟着变化。
Sort()函数用法
template void sort(RanIt first, RanIt last); //--> 1)template void sort(RanIt first, RanIt last, Pred pr); //--> 2)
头文件:
#include
using namespace std;
1.默认的sort函数是按升序排。对应于1)
sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址
2.可以自己写一个cmp函数,按特定意图进行排序。对应于2)
例如:
int cmp( const int &a, const int &b ){
if( a > b )
return 1;
else
return 0;
}
sort(a,a+n,cmp);
是对数组a降序排序
又如:
int cmp( const POINT &a, const POINT &b ){
if( a.x < b.x )
return 1;
else
if( a.x == b.x ){
if( a.y < b.y )
return 1;
else
return 0;
}
else
return 0;
}
sort(a,a+n,cmp);
是先按x升序排序,若x值相等则按y升序排
本文详细介绍了C++中pair类型的定义与使用方法,并通过实例展示了如何利用typedef简化声明。此外,还深入探讨了sort函数的应用,包括默认升序排序及通过自定义比较函数实现特定排序方式。
1092

被折叠的 条评论
为什么被折叠?



