在 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)行升序排序。最后,我們輸出了排序后的元素。