А что подсказать? В чем вопрос?
Или написать за Вас код?
Алгоритм прост:
Читаем слова из файлового потока и собираем в map примерно так
ifstream fs("filename.txt");
map freq; // частоты файлов
string word;
while(read_next_word(fs, word)) // read and skip spaces tabs etc... (тут логика пропуска ненужных символов)
{
transform(word.begin(), word.end(), word.begin(), tolower); //lowercase
freq[word]++; // увеличиваем счетчик для нашего слова
}
теперь у нас есть частоты всех слов в мапе скопируем ее в вектор и отсортируем по частотам
vector > vocabulary(freq.begin(), freq.end());
sort(vocabulary.begin(), vocabulary.end(), less_second); // можно лямбдой будет проще если можно с++11
Слова в контейнере vocabulary отсортированы по частоте и делать с ними можно что угодно
где
bool less_second(const pair& a, const pair& b)
{
return a.second < b. second;
}
Это действительно весь код. (кроме логики пропуска символов, но там все просто по моему)