c++ sort
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++ sort,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1943字,纯文字阅读大概需要3分钟。
内容图文
![c++ sort](/upload/InfoBanner/zyjiaocheng/845/d2b99638531e4c5889ced7e99711d250.jpg)
用法
1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std;
2、它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)
3、Sort函数有三个参数:(第三个参数可不写)
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序
2个参数排序
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 int main() 5 { 6 int a[10] = { 2, 4, 1, 23, 5, 76, 0, 43, 24, 65 }, i; 7 for (i = 0; i<10; i++) 8 cout << a[i] << endl; 9 sort(a, a + 10); 10 for (i = 0; i<20; i++) 11 cout << a[i] << endl; 12 system("pause"); 13 return 0; 14 }
自定义fun排序
i>j 降序;
i<j 升序;
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 bool sfun(int i, int j){ 5 return i > j; 6 } 7 int main() 8 { 9 int a[20] = { 2, 4, 1, 23, 5, 76, 0, 43, 24, 65 }, i; 10 for (i = 0; i<20; i++) 11 cout << a[i] << endl; 12 sort(a, a + 20, sfun); 13 for (i = 0; i<20; i++) 14 cout << a[i] << endl; 15 system("pause"); 16 return 0; 17 }
结构体排序;
//需要用static
//2. sort中的比较函数compare要声明为静态成员函数或全局函数,不能作为普通成员函数,否则会报错。 invalid use of non-static member function
//因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法再sort中调用非静态成员函数。
静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。同时静态成员函数不可以调用类的非静态成员。
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */ class Solution { public: static bool sfun(Interval a,Interval b){ return a.start<b.start; } void test (vector<Interval>& intervals) { sort(intervals.begin(),intervals.end(),sfun); } };
内容总结
以上是互联网集市为您收集整理的c++ sort全部内容,希望文章能够帮你解决c++ sort所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。