溫馨提示×

C++ set函數(shù)與排序函數(shù)的結(jié)合使用

c++
小樊
83
2024-09-10 20:03:29
欄目: 編程語言

在 C++ 中,set 是一種關(guān)聯(lián)容器,它包含一組唯一的元素,并按照特定的順序進(jìn)行存儲。默認(rèn)情況下,set 會按照升序?qū)υ剡M(jìn)行排序。你可以通過自定義比較函數(shù)來改變排序方式。

set 容器提供了一些有用的成員函數(shù),如 insert()、erase()、find() 等,用于操作元素。這些函數(shù)可以與排序函數(shù)結(jié)合使用,以實現(xiàn)更復(fù)雜的功能。

下面是一個示例,展示了如何使用 set 容器和排序函數(shù):

#include<iostream>
#include <set>
#include<algorithm>

// 自定義比較函數(shù),用于降序排序
struct CompareDesc {
    bool operator()(int a, int b) const {
        return a > b;
    }
};

int main() {
    // 創(chuàng)建一個降序排序的 set 容器
    std::set<int, CompareDesc> my_set;

    // 向 set 中插入元素
    my_set.insert(5);
    my_set.insert(3);
    my_set.insert(1);
    my_set.insert(4);
    my_set.insert(2);

    // 輸出 set 中的元素
    for (int x : my_set) {
        std::cout << x << " ";
    }
    std::cout<< std::endl;

    // 使用排序函數(shù)對 set 進(jìn)行升序排序
    std::vector<int> sorted_vec(my_set.begin(), my_set.end());
    std::sort(sorted_vec.begin(), sorted_vec.end());

    // 輸出排序后的元素
    for (int x : sorted_vec) {
        std::cout << x << " ";
    }
    std::cout<< std::endl;

    return 0;
}

在這個示例中,我們首先創(chuàng)建了一個降序排序的 set 容器,然后向其中插入了一些元素。接著,我們將 set 中的元素復(fù)制到一個 vector 中,并使用 std::sort() 函數(shù)對其進(jìn)行升序排序。最后,我們輸出了排序后的元素。

0