在下面的代碼中,sort()
函數是如何工作的? 例如,如果我們有一個數組:C++中的sort函數如何工作?
a [5] = {1,2,3,4,5};
和我排序它在使用我bool cmp()
功能, 降序我想知道:它是如何工作的,哪一個元素是int a
並且是int b
(中bool cmp()
函數中的參數),它何時進行排序,以及bool cmp()
何時返回1以及何時返回0?
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp (int a , int b)
{
return (a > b);
}
int main()
{
int a[100];
int n;
cin >> n;
for (int i=0 ; i<n ;i++)
cin >> a[i];
sort(a,a+n,cmp);
cout << endl << endl;
for (int i=0 ; i<n ;i++)
cout << a[i] << " ";
return 0;
}
看一個很好的C++參考,例如http://en.cppreference.com/w/cpp/algorithm/sort。 –
如果你想知道它是如何實現的,只需在你包含的頭文件('算法')中查找它。 – us2012
@ us2012這是可怕的建議。 'std :: sort'寫得很快,不可讀。 – Yakk