C++STL之sort的用法总结
程序员文章站
2022-07-12 14:50:41
...
sort用法一:
对于基本类型的数组大小从小到大排序:
sort(数组名+n1,数组名+n2);
n1和n2都是int类型的表达式,可以包含变量;
如果n1=0,则+n1可以不写;
将数组中下表范围为[n1,n2)的元素从小到大排序。下标n2不在排序范围内。
sort用法二:
对于元素类型为T的基本类型数组大小从大到小排序:
sort(数组名+n1,数组名+n2,greater);
T为int /double/float/long/char等等;
sort用法三:
用自定义的排序规则,对任何类型的T的数组排序:
sort(数组名+n1,数组名+n2,排序规则结构名());
排序规则结构的定义方式:
struct 结构名
{
bool operator()( const T & a1,const T & a2)
const{
//若a1应该在a2前面,则返回true
//否则返回false
}
};
演示:
struct rule
{
bool operator()( const int &a1,const int & a2)const{
return a1>a2;
}
};
int main()
{
int a[]={5,4,6,7,8,9};
sort(a,a+4,rule());
}
sort还可以用在结构体的排序:
struct student{
char name[20];
int id;
double gpa;
};
student students[]={{"jack",112,3.4},{"mary",102,3.5},
{"ala",333,3}};
struct rule
{
bool operator()( const student & s1,const student & s2)const{
if(strcmp(s1.name,s2.name))
return true;
return false;
}
};
上一篇: 常用查找算法总结
推荐阅读
-
详解Spring Data JPA系列之投影(Projection)的用法
-
Tensorflow之Saver的用法详解
-
数据处理之 数组扁平化 (数组降维)顺带总结一下数组的方法
-
MyBatis从入门到精通(八):MyBatis动态Sql之foreach标签的用法
-
(6/6)枚举的错误用法 之 分支判断
-
iCloud使用法之iPad如何看苹果手机里的内容
-
jquery ajax,ashx,json的用法总结
-
构筑Linux防火墙之IPtables的概念与用法(1)
-
JavaScript学习总结之正则的元字符和一些简单的应用
-
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结