【C++】sort函数使用方法
一.sort函数 1.sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考虑! 2.sort函数的模板有三个参数: void sort (RandomAccessIterator first,RandomAccessIterator last,Compare comp); (1)第一个参数first:是要排序的数组的起始地址。 (2)第二个参数last:是结束的地址(最后一个数据的后一个数据的地址) (3)第三个参数comp是排序的方法:可以是从升序也可是降序。如果第三个参数不写,则默认的排序方法是从小到大排序。 3.实例 sort第三个参数不进行设定默认进行的是从小到大的排序。 #include<iostream> #include<algorithm> using namespace std; main() { //sort函数第三个参数采用默认从小到大 int a[]={45,12,1)">34,1)">77,1)">90,1)">11,1)">2,1)">4,1)">5,1)">55}; sort(a,a+10); for(int i=0;i<10;i++) cout<<a[i]<<" "; } 这里可以看到是sort(a,a+10),但是数组a一共只有9个元素,为什么是a+10而不是a+9呢? 因为sort方法实际上最后一位地址对应的数是不取的, 而且vector,set,map这些容器的end()取出来的值实际上并不是最后一个值,而end的前一个才是最后一个值! 需要用prev(xxx.end()),才能取出容器中最后一个元素。 ? 如果第三个参数进行设定,可以实现从大到小的排序,例如以下例子,自定义第三个参数,实现从大到小排序。 #include<iostream> std; bool cmp(int a,int b); main(){ sort函数第三个参数自己定义,实现从大到小 ,cmp); ) cout<<a[i]<<; } 自定义函数 b){ return a>b; } ? 参考自博客,更详细见:https://www.cnblogs.com/junbaobei/p/10776066.html和https://www.cnblogs.com/zhouxiaosong/p/5557990.html这两篇结合来看更好。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |