C++ pair函数和sort函数学习

C++ pair函数和sort函数学习

(2014-12-02 16:48:12)  http://blog.sina.com.cn/s/blog_8851871e0102v7hg.html
转载
标签:

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/c++知识点)