Ассоциативные массивы: map




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

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

Ввод Вывод
один
два
три
один
два
два 2
один 2
три 1
 

C++
Write a program below
#include<iostream>
#include<vector>
#include <string>
#include <map>
#include <algorithm>
using namespace std;


bool cmp(const pair<string, int>& first,
	const pair<string, int>& second)
{        
}


int main()
{

	map<string, int> mymap;
	string s;
	while (!cin.eof())
	{
		cin>>s;
                 if (s == "END!")
			break;
		mymap[s]++;
	}
	
	vector<pair <string, int> > B( mymap.begin(), mymap.end());
        
	for (int i = 0; i < B.size(); i++)
	{
		cout << B[i].first << " " << B[i].second << endl;

	}
	return 0;
}        
Your last submission is saved in the editor window.
     

Results:

All results: