要使用stl中的演算法,需要在程式標頭檔案引入#include
1.對基本型別的陣列從小到大排序:
sort(陣列名+n1,陣列名+n2);
n1和n2都是int型別的表示式,可以包含變數
如果n1=0,則 + n1可以不寫
將陣列中下標範圍為[n1,n2)的元素從小到大排序。下標為n2的元素不在排序區間內
2.對元素型別為t的基本型別陣列從大到小排序:
sort(陣列名+n1,陣列名+n2,greater());
3.用自定義的排序規則,對任何型別t的陣列排序
sort(陣列名+n1,陣列名+n2,排序規則結構名());
排序規則結構的定義方式:
struct 排序規則結構名
};
例1:
int a = ; sort(a,a+7); //對整個陣列從小到大排序
int a = ; sort(a,a+3); // 結果:
int a = ; sort(a+2,a+5); //結果:
例2:
int a = ;
sort(a+1,a+4,greater()); // 結果:
例3:
#include
#include
#include
using namespace std;
struct student ,,, ,};
struct studentrule1 {//按姓名從小到大排
bool operator() (const student & s1,const student & s2) {
if( stricmp(s1.name,s2.name) < 0)
return true;
return false;
struct studentrule2 {//按id從小到大排
bool operator() (const student & s1,const student & s2) {
return s1.id < s2.id;
struct studentrule3 {//按gpa從高到低排
bool operator() (const student & s1,const student & s2) { return s1.gpa > s2.gpa;
void printstudents(student s,int size){
for(int i = 0;i < size;++i)
cout << "(" << s[i].name << "," << s[i].id <<"," << s[i].gpa << ") " ; cout << endl;
int main()
int n = sizeof(students) / sizeof(student);
sort(students,students+n,studentrule1()); //按姓名從小到大排
printstudents(students,n);
sort(students,students+n,studentrule2()); //按id從小到大排
printstudents(students,n);
sort(students,students+n,studentrule3()); //按gpa從高到低排
printstudents(students,n);
return 0;
結果:
(ala,333,3.5) (jack,112,3.4) (mary,102,3.8) (mary,117,3.9) (zero,101,4)
(zero,101,4) (mary,102,3.8) (jack,112,3.4) (mary,117,3.9) (ala,333,3.5)
(zero,101,4) (mary,117,3.9) (mary,102,3.8) (ala,333,3.5) (jack,112,3.4)
STL(排序演算法sort)
標頭檔案 include 1.對基本型別的陣列從小到大排序 sort 陣列名 n1,陣列名 n2 n1和n2都是int型別的表示式,可以包含變數 如果n1 0,則 n1可以不寫 將陣列中下標範圍為 n1,n2 的元素從小到大排序 如 int a sort a,a 7 對整個陣列從小到大排序 int ...
STL排序演算法sort
sort 陣列名 n1,陣列名 n2 注意排序區間是 n1,n2 左閉右開。預設為從小到大排序,如果想要從大到小排序,需要加引數sort 陣列名 n1,陣列名 n2,greater include includeusing namespace std int main sort a,a 5 for ...
詳細解說 STL 排序 Sort
從效率上看,以下幾種sort演算法的是乙個排序,效率由高到低 耗時由小變大 partion stable partition nth element partial sort sort stable sort 若需對vector,string,deque,或 array容器進行全排序,你可選擇sor...