0
map
にはalphabet
に付けられた番号があります。 map
は最初の値を使用してデフォルトでソートされますが、frequency
つまり2番目の値でソートしてから印刷します。どうすればいいのですか? 編集::何も私はここで試すことができませんマップをC++で並べ替え
map
にはalphabet
に付けられた番号があります。 map
は最初の値を使用してデフォルトでソートされますが、frequency
つまり2番目の値でソートしてから印刷します。どうすればいいのですか? 編集::何も私はここで試すことができませんマップをC++で並べ替え
map
は、その第2の値に従って直接ソートすることはできません。しかし、それは手動で行うことができます。まず、map
のデータをvector
のpair
に保存し、必要に応じてベクターを並べ替えます。
しかし、とにかく、ここでは、上記の動作を説明し実行するために少しのコードスニペットです:
今template <typename T1, typename T2> struct less_second {
typedef pair<T1, T2> type;
bool operator()(type const& a, type const& b) const {
return a.second < b.second;
}
};
map<key_t, value_t> mymap; /* It is map you want to sort according to the second argument*/
/* ...
...
... */
vector<pair<key_t, value_t> > mapcopy(mymap.begin(), mymap.end());
sort(mapcopy.begin(), mapcopy.end(), less_second<key_t, value_t>());
を、mapcopy
(それはベクトルである)は、ご希望の出力を持っています。
これまでに試したことをお見せください – Mangesh
マップを '>'ベクトルにダンプし、並べ替えて印刷します。 –
@MohitJain少し詳しく教えてもらえますか? –