溫馨提示×

C++ next_permutation如何定制比較函數

c++
小樊
91
2024-07-13 04:24:27
欄目: 編程語言

在C ++中使用next_permutation時,可以通過自定義比較函數來指定排序規則。比較函數必須滿足嚴格弱序關系,即滿足反對稱性、傳遞性和非對稱性。

下面是一個示例,在next_permutation中使用自定義的比較函數,該比較函數將按照數字的絕對值大小進行排序:

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

bool compareAbs(int a, int b) {
    return abs(a) < abs(b);
}

int main() {
    std::vector<int> vec = {3, -1, 4, -5, 2};
    
    std::sort(vec.begin(), vec.end(), compareAbs);
    
    do {
        for (int i : vec) {
            std::cout << i << " ";
        }
        std::cout << std::endl;
    } while (std::next_permutation(vec.begin(), vec.end(), compareAbs));
    
    return 0;
}

在上面的示例中,compareAbs函數指定了按照數字的絕對值大小進行排序。然后在std::sortstd::next_permutation函數中傳入該比較函數,從而實現按照絕對值大小進行排序和生成排列。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女