一、sort(a,a+7) a表示要排序的首地址,數組名錶明的就是一個數組的首地址,7是要排序的元素個數ios
1 int a[] = { 8,2,9,1,0,5,6 }; 2 sort(a, a + 7); 3 for (int i = 0; i < 7; i++) { 4 cout << a[i] << " ";//0 1 2 5 6 8 9 5 }
二、sort(a+1,a+5) 表示將[a+1,a+5)區間中的元素排序數組
1 int a[] = { 8,2,9,1,0,5,6 }; 2 sort(a+1, a + 5); 3 for (int i = 0; i < 7; i++) { 4 cout << a[i] << " ";//8 0 1 2 9 5 6 5 }
三、sort(a,a+7,greater<int>()) 按從大到小的順序排列函數
sort默認是按照從小到大的順序排列的,greater表示更大的意思,即更大的數排在前面,<int>表示要排序的數組中的元素是int類型的spa
1 int a[] = { 8,2,9,1,0,5,6 }; 2 sort(a, a + 7,greater<int>()); 3 for (int i = 0; i < 7; i++) { 4 cout << a[i] << " ";//9 8 6 5 2 1 0 5 }
四、定義一個比較大小的函數cmpcode
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 bool cmp(int x, int y) { 5 return x > y;//表示大的排在前面 6 } 7 int main() { 8 int a[] = { 8,2,9,1,0,5,6 }; 9 sort(a, a + 7,cmp); 10 for (int i = 0; i < 7; i++) { 11 cout << a[i] << " ";//9 8 6 5 2 1 0 12 } 13 14 return 0; 15 }
五、比較結構體大小blog
方法一:排序
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 struct A { 5 int x; 6 int y; 7 }; 8 bool cmp(A m, A n) { 9 return m.y> n.y;//y更大的排在前面 10 } 11 int main() { 12 A a[] = { {1,3},{4,1},{5,9},{1,6},{8,2} }; 13 sort(a, a + 5,cmp); 14 for (int i = 0; i < 5; i++) { 15 cout << "(" << a[i].x << "," << a[i].y << ")" << " "; 16 //(5,9) (1,6) (1,3) (8,2) (4,1) 17 } 18 19 return 0; 20 }
方法二:it