2. Отсортированные списки №1

☰ Теория

По умолчанию данные в списках сортируются по ключу по возрастанию, часто бывает, что этот порядок сортировки нужно изменить.
Для этого можно написать компаратор, который будет располагать данные, так как вы укажите.

Пример компаратора, который сортирует по убыванию ключа (пишется перед main):

struct cmp
{
	bool operator()(const string &a, const string &b) const
	{
		return a > b;
	}
};

и используется при создании списка:

map<string, int, cmp> mymap;

Построить алфавитно-частотный словарь: список слов в алфавитном порядке, справа от каждого слова должно быть указано, сколько раз оно встречается в исходном файле. Признаком окончания текста является "END!". Список должен быть отсортированный по ключу в лексикографическом порядке по убыванию.
 
Ввод Вывод
один
два
один
три
два
один
END!
три 1
один 3
два 2
 

Вставьте недостающие фрагменты кода
C++
Напишите программу ниже
#include<iostream>	
#include <map>
#include<string>
using namespace std;
struct cmp
{
	

       
};

int main() {

	map<string, int, cmp> mymap;
	string s;
	while (!cin.eof())
	{
		cin >> s;
		if (s == "END!")  break;
		mymap[s]++;

	}
	map<string, int>::iterator it;

	for (it = mymap.begin(); it != mymap.end(); ++it)
	cout <<  it->first << " " << it->second << "\n";
	

	return 0;
}

       
     
Foxford Lectarium.ru