以下に、降順にソートされたmultimapを作成するいくつかの方法を示します。
方法1: カスタム比較関数を使用する
#include <iostream>
#include <map>
struct Compare {
bool operator()(const int& a, const int& b) const {
return a > b;
}
};
int main() {
std::multimap<int, std::string, Compare> myMap;
myMap.insert(std::make_pair(3, "Three"));
myMap.insert(std::make_pair(1, "One"));
myMap.insert(std::make_pair(2, "Two"));
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
この方法では、カスタム比較関数 Compare
を作成し、その関数をmultimapのテンプレート引数として渡します。operator()
関数では、要素のキーを逆の順序で比較しています。
方法2: ラムダ式を使用する
#include <iostream>
#include <map>
int main() {
std::multimap<int, std::string, std::greater<int>> myMap;
myMap.insert(std::make_pair(3, "Three"));
myMap.insert(std::make_pair(1, "One"));
myMap.insert(std::make_pair(2, "Two"));
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
この方法では、multimapのテンプレート引数として std::greater<int>
を指定します。これにより、要素が降順にソートされます。
どちらの方法でも、multimapの要素は降順にソートされ、結果を出力することができます。