在C++中,你可以通過自定義一個比較函數(cmp function)來實現自定義的比較邏輯
#include<iostream>
#include<vector>
#include<algorithm>
// 自定義比較函數
bool cmp(int a, int b) {
return a > b; // 降序排列
}
int main() {
std::vector<int> numbers = {3, 1, 4, 1, 5, 9, 2, 6};
// 使用自定義比較函數對vector進行排序
std::sort(numbers.begin(), numbers.end(), cmp);
// 輸出排序后的結果
for (int num : numbers) {
std::cout<< num << " ";
}
return 0;
}
在這個例子中,我們定義了一個名為cmp
的比較函數,它接受兩個整數參數a
和b
。如果a
大于b
,則返回true
,否則返回false
。這樣,當我們使用std::sort
函數并傳入cmp
作為比較函數時,它會按照降序方式對numbers
向量進行排序。
注意:在C++中,比較函數應該返回一個布爾值,表示兩個元素之間的比較關系。對于std::sort
函數,如果比較函數返回true
,則表示第一個元素應該排在第二個元素之前。如果返回false
,則表示第一個元素應該排在第二個元素之后或保持不變。這種比較方式被稱為“嚴格弱序”。