在C++中,set容器是自動(dòng)排序的容器,其元素默認(rèn)按照從小到大的順序進(jìn)行排序。如果需要自定義排序方法,可以使用set容器的構(gòu)造函數(shù)來(lái)指定排序方法,例如:
#include <set>
// 自定義排序方法,按照元素的長(zhǎng)度進(jìn)行排序
struct CompareByLength {
bool operator() (const std::string& str1, const std::string& str2) const {
return str1.length() < str2.length();
}
};
int main() {
std::set<std::string, CompareByLength> mySet;
mySet.insert("hello");
mySet.insert("world");
mySet.insert("c++");
for (const auto& str : mySet) {
std::cout << str << std::endl;
}
return 0;
}
在上面的例子中,我們通過自定義CompareByLength結(jié)構(gòu)體來(lái)指定set容器按照字符串的長(zhǎng)度進(jìn)行排序。在創(chuàng)建set容器時(shí),將CompareByLength作為第二個(gè)模板參數(shù)傳入,即可實(shí)現(xiàn)自定義排序方法。