2011-12-28 4 views
4

マップを定義したいという問題が発生しました。そのマップは最初に降順でソートされています。最初のクラスがプライマリタイプでない場合は、クラスの場合と同様に、そのクラス内で "<"をオーバーロードすることができますが、int型の処理方法はわかりません。なにか提案を?演算子<std :: mapのint型比較のオーバーロード? (降順で並べ替える)

ありがとうございます!

答えて

11

は、コンパレータを追加します。

#include <functional> 
map<int, value_type, greater<int>> m; 

デフォルトはless<int>です。

1

マップを作成するときにコンパレータを指定できます(オプションのコンストラクタ引数)。

例えば:私は明示的にも第三テンプレートパラメータを指定する必要がしました

bool my_compare(int x, int y) { return y < x; } 

std::map<int,T,bool(*)(int,int)> my_map(my_compare); 

注意してください。

[注:私はあなたが>を実行するために<演算子をオーバーロードしないでください強くアドバイスをでしょう...]

関連する問題