要實現自定義排序,需要使用std::map
的構造函數來傳入自定義的比較函數。比如,如果要按照值的大小來排序map,可以定義一個比較函數,然后將其傳入std::map
的構造函數中。
以下是一個示例代碼:
#include <iostream>
#include <map>
// 自定義比較函數
struct Compare {
bool operator() (const int& a, const int& b) const {
return a > b;
}
};
int main() {
// 使用自定義比較函數進行排序
std::map<int, std::string, Compare> customMap;
customMap.insert(std::make_pair(3, "three"));
customMap.insert(std::make_pair(1, "one"));
customMap.insert(std::make_pair(2, "two"));
// 遍歷map
for (auto it = customMap.begin(); it != customMap.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
return 0;
}
在上面的代碼中,我們定義了一個Compare
結構體來實現自定義的比較函數,然后將其傳入std::map
的構造函數中。這樣,我們就可以按照值的大小來排序map。