首先,在学习c的时候,应该学了很多排序方法吧,类似于冒泡排序呀,选择排序,插入排序,快排呀等等,但是,在c++中,有一个很好的排序就是sort排序,在stl里面,sort排序可以说,无论是时间复杂度还是空间复杂度,都是很优化的,这就足以见证sort排序的强大了,也说明sort排序的重要性。
在C++中使用sort()函数需要使用#include<algorithm>
头文件,算法的常用头文件,不过多解释啦,当然,你写万能头文件也是可以的;
sort()函数可以对给定区间所有元素进行排序。它有三个参数sort(begin, end, cmp),其中begin为指向待sort()的数组的第一个元素的指针,end为指向待sort()的数组的最后一个元素的下一个位置的指针,cmp参数为排序准则,cmp参数可以不写,如果不写的话,默认从小到大进行排序。如果我们需要按照其他的排序准则,那么就需要我们自己定义一个bool类型的函数来传入。比如我们对一个整型数组进行从大到小排序:
#include<iostream> #include<algorithm> using namespace std; bool cmp(int x,int y){ return x> y; } int main(){ int num[10] = {65,59,96,13,21,80,72,33,44,99}; sort(num,num+10,cmp); for(int i=0;i<10;i++){ cout<<num[i]<<" "; }//输出99 96 80 72 65 59 44 33 21 13 return 0; }sort排序(有大到小,cmp)
当然,这只是最基础的,cmp的用法常常是对结构体进行排序,比如说给了你一个结构体来存储学生的信息,按照成绩来排序,那么这个时候就需要用cmp排序啦;
#include<iostream> #include<string> #include<algorithm> using namespace std; struct Student { string name; int score; };//学生的结构体 bool cmp(Student x, Student y) { return x.score > y.score; }//排序 int main() { Student stu[3]; string n; int s; for (int i = 0; i < 3; i++) { cin >>stu[i].name >> stu[i].score; } sort(stu, stu + 3, cmp); for (int i = 0; i < 3; i++) { cout << stu[i].name << " " << stu[i].score << endl; } return 0; }cmp结构体排序
好啦,这里,是不是对sort排序有了一个大致的了解啊。
标签:sort,include,int,stu,结构,排序,cmp From: https://www.cnblogs.com/haggard/p/17444853.html