如何正確使用C++中的cmp函數(shù)進(jìn)行排序

c++
小樊
82
2024-09-09 08:59:05

在 C++ 中,cmp 函數(shù)并不是一個(gè)內(nèi)置的函數(shù),但你可以自定義一個(gè)比較函數(shù)來(lái)實(shí)現(xiàn)排序

#include<iostream>
#include<vector>
#include<algorithm>

// 自定義 cmp 函數(shù)
bool cmp(int a, int b) {
    return a > b; // 降序排列
}

int main() {
    std::vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6};

    // 使用自定義的 cmp 函數(shù)對(duì) nums 進(jìn)行排序
    std::sort(nums.begin(), nums.end(), cmp);

    // 輸出排序后的結(jié)果
    for (int num : nums) {
        std::cout<< num << " ";
    }

    return 0;
}

在這個(gè)例子中,我們定義了一個(gè)名為 cmp 的比較函數(shù),它接受兩個(gè)整數(shù)參數(shù)。如果第一個(gè)參數(shù)大于第二個(gè)參數(shù),函數(shù)返回 true,否則返回 false。這樣,當(dāng)我們將這個(gè)函數(shù)傳遞給 std::sort() 時(shí),它會(huì)按照降序方式對(duì)向量進(jìn)行排序。

注意:在實(shí)際編程中,你可能需要根據(jù)具體需求調(diào)整比較函數(shù)的實(shí)現(xiàn)。例如,如果你想按照升序排列,只需將 cmp 函數(shù)中的比較操作符改為 < 即可。

0