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