0
私は文字列ベクトルstd::vector<string> list
を持っており、ベクトルのN番目に高い反復要素を見つけようとしています。C++マップのN番目に高い要素を見つけよう
私はベクトルの要素とそれらの繰り返し数を含んでいます。
std::map<std::string , int> mapa;
for(int i = 0 ; i<list.size() ; i++)
mapa[list[i]]++;
どのようにして地図の上位N番目のものを見つけることができますか?
例ベクトル:
qwe asd qwe asd zxc asd zxc qwe qwe asd sdf asd fsd
Nが2であれば、私はあなたがstd::partial_sort
を使用する場合があります
asd 5
qwe 4
あなたは可能性があります譲りたいsider ['std :: unordered_map'](http://en.cppreference.com/w/cpp/container/unordered_map)、代わりに[' sort'](http://en.cppreference.com/w/cpp/アルゴリズム/ソート)し、n:番目の最初の要素を取得しますか? –
@Someprogrammerdude私はマップに関する経験はありません。どうすればベクトルのメンバーをunordered_mapに追加できますか?地図と同じですか? – ffttyy
私はあなたが参照へのリンクに従うことをお勧めします。しかし要するに、インタフェースは 'std :: map'とほぼ同じです。 –