テキストから異なる単語を読み込み、出現回数を減らして頻度表を作成するための最良のデータ構造が何か疑問に思っていました。挿入のための最も効率的なデータ構造と異なる条件で並べ替え
struct info {
string word;
int num;
};
は私が使用する必要があると思いまして心の中でこれを持つ:
私の考えは、構造体使用した、セット、ベクトルをリスト...? 私はベクトルで2つの実装を持っています:
1)ベクトルを並べ替えずに単語の線形検索をすると、単語がベクトルにない場合、最後に要素を追加します。私が単語を読み終えたら、頻度を減らしてベクトルをソートしました。
2)ベクトルをソートし、双子葉探索を使用して、対応する位置に要素を追加するか、またはnumを1に加算します。次に、頻度を減らしてベクトルをソートしました。
あなたはどう思いますか、この種の運動をする最良の方法は何ですか?
特定の単語を数えるには 'std :: map 'を使うことができます。 –
私は2種類の並べ替えを使用しなければならないと思います:最初にアルファベット順を使用し、次に頻度で並べ替えます。 – KooPad