したがって、最もよく使われる単語をファイル内で見つける必要があります。ペア内の個々の要素に基づいてペアのベクトルの重複要素を削除する
私はvector<pair<string, int> > wordList
を持っています。ファイル内のすべての単語とその頻度を記録しています。この部分はうまく動作します。
問題は、出力に各単語の複数のバージョンが表示されることです。
- 負荷再び1〜
- ゴーの周波数を持つベクターにすべての単語と単語が二回現れた場合、そのカウント
一部を増やす:これは私が計算の方法は、それがあったためであります私は、同じ単語の複数のエントリを削除することですヘルプが必要です。
for(int j = 0; j < wordList.size(); j++) {
これは私の現在のアプローチです。この関数はすべての単語を集計します。問題は、forループ 内にある行wordList.erase
が範囲外のエラーを生成するため、重複したエントリをそのように削除できないということです。 私もunique()アプローチを試みましたが、動作していないようですが、いくつかのエントリを削除するだけです。
ペアのベクトルを一意の要素に限定する最も効率的な方法は何ですか?
あなたは 'std :: map'に精通していますか? – Beta
はい、しかし、私はこのリストが降順で印刷されている必要があります。正しくリコールすれば、その中の特定の値に基づいてマップをソートすることはできません。私が間違っている? –
ループ内のベクトルから要素を消去すると、サイズが変化していると考える必要があります。要素iを消去すると、次の要素はi + 1ではなくiです。 – user463035818