C++的sort函數有兩種形式,一種是使用默認的比較函數進行排序,另一種是使用自定義的比較函數進行排序。
使用默認比較函數進行排序時,sort函數的參數如下:
第一個參數是要排序的起始位置的迭代器;
第二個參數是要排序的結束位置的迭代器;
第三個參數是可選的比較函數對象,用于指定排序的方式,默認為std::less
使用自定義比較函數進行排序時,sort函數的參數如下:
第一個參數是要排序的起始位置的迭代器;
第二個參數是要排序的結束位置的迭代器;
第三個參數是自定義的比較函數對象,用于指定排序的方式。比較函數的定義應該滿足嚴格的弱序(Strict Weak Ordering)規則。
例如,使用默認比較函數進行排序的代碼示例:
#include <algorithm>
#include <vector>
int main() {
std::vector<int> nums = {5, 2, 8, 1, 4};
std::sort(nums.begin(), nums.end());
return 0;
}
使用自定義比較函數進行排序的代碼示例:
#include <algorithm>
#include <vector>
bool compare(int a, int b) {
return a > b; // 降序排序
}
int main() {
std::vector<int> nums = {5, 2, 8, 1, 4};
std::sort(nums.begin(), nums.end(), compare);
return 0;
}