Считаем топ самых частых слов на C++!
Иногда нужно быстро понять, какие слова чаще всего встречаются в тексте: в логах, комментариях, поисковых запросах или простом анализаторе.
Сначала заведём счётчик:
std::unordered_map freq;
Разобьём строку на слова:
std::istringstream in(text);
std::string word;
while (in >> word) {
++freq[word];
}
Теперь переложим пары в vector:
std::vector items(
freq.begin(), freq.end()
);
Отсортируем по частоте:
std::sort(items.begin(), items.end(),
[](const auto& a, const auto& b) {
return a.second > b.second;
});
Выведем первые 3 слова:
for (std::size_t i = 0; i < std::min(3, items.size()); ++i) {
std::cout
Иногда нужно быстро понять, какие слова чаще всего встречаются в тексте: в логах, комментариях, поисковых запросах или простом анализаторе.
Сначала заведём счётчик:
std::unordered_map freq;
Разобьём строку на слова:
std::istringstream in(text);
std::string word;
while (in >> word) {
++freq[word];
}
Теперь переложим пары в vector:
std::vector items(
freq.begin(), freq.end()
);
Отсортируем по частоте:
std::sort(items.begin(), items.end(),
[](const auto& a, const auto& b) {
return a.second > b.second;
});
Выведем первые 3 слова:
for (std::size_t i = 0; i < std::min(3, items.size()); ++i) {
std::cout