マップを定義したいという問題が発生しました。そのマップは最初に降順でソートされています。最初のクラスがプライマリタイプでない場合は、クラスの場合と同様に、そのクラス内で "<"をオーバーロードすることができますが、int型の処理方法はわかりません。なにか提案を?演算子<std :: mapのint型比較のオーバーロード? (降順で並べ替える)
ありがとうございます!
マップを定義したいという問題が発生しました。そのマップは最初に降順でソートされています。最初のクラスがプライマリタイプでない場合は、クラスの場合と同様に、そのクラス内で "<"をオーバーロードすることができますが、int型の処理方法はわかりません。なにか提案を?演算子<std :: mapのint型比較のオーバーロード? (降順で並べ替える)
ありがとうございます!
は、コンパレータを追加します。
#include <functional>
map<int, value_type, greater<int>> m;
デフォルトはless<int>
です。
マップを作成するときにコンパレータを指定できます(オプションのコンストラクタ引数)。
例えば:私は明示的にも第三テンプレートパラメータを指定する必要がしました
bool my_compare(int x, int y) { return y < x; }
std::map<int,T,bool(*)(int,int)> my_map(my_compare);
注意してください。
[注:私はあなたが>
を実行するために<
演算子をオーバーロードしないでください強くアドバイスをでしょう...]
std :: less実装を見てください。http://www.cplusplus.com/reference/std/functional/less/ 独自のコンパレータを作成してマップと一緒に使用することができます。