编程语言
首页 > 编程语言> > c++ STL中sort函数

c++ STL中sort函数

作者:互联网

c++ STL中sort函数是一个快速排序函数可以对任何类型的数据进行排序。
STL,C++中的标准模板库, 使用起来方便并且效率较高;
#include<algorithm>//用sort要包含这个头文件
一:对基本类型数组从小到大排序
sort( 数组名+n1,数组名+n2);
将数组中下标从n1到n2的元素进行从小到大排序,不包括n2,通过n1,n2 可以对整个或者部分数组排序;
二:对元素类型为T的基本类型数组从大到小排序
sort( 数组名+n1,数组名+n2,greater<T>());
T对应各种元素类型
同样,将数组中下标从n1到n2的元素进行从大到小排序,不包括n2,通过n1,n2 可以对整个或者部分数组排序;
三:第三种自定义排序规则
1排序规则结构体定义:

sort(数组名+n1,数组名+n2,排序规则结构名);
struct 结构名{
     bool operator()(const T &a1, const T &a2){
          return    ;
     } 
};

返回值为true说明a1应该排在a2前面,false则相反,T对应元素类型

举个例子:
排序规则为按个位数从小到大排序:

struct Rule1{ 
    bool operator()(const int &a1, const int &a2){
    	return (a1%10)<(a2%10);
	} 
};
调用时sort(a,a+sizeof(a)/sizeof(int),Rule1());

sort还可以对结构体进行排序。

在结构体中重载<运算符
练习
P1177 【模板】快速排序
P7072直播获奖
P1223 排队接水
P1628 合并序列
P1296 奶牛的耳语

 

标签:sort,STL,c++,数组名,数组,n1,n2,排序
来源: https://www.cnblogs.com/smghj/p/15982661.html