溫馨提示×

C++中使用cmp函數(shù)實現(xiàn)自定義比較邏輯的方法

c++
小樊
89
2024-09-09 09:04:22
欄目: 編程語言

在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ù)ab。如果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)該排在第二個元素之后或保持不變。這種比較方式被稱為“嚴格弱序”。

0