Problem

3/9

ソートされたリスト #2

Theory Click to read/hide

値で並べ替える簡単な解決策はないため、辞書からペアのベクトルを作成し、コンパレータを使用して並べ替える必要があります。

Problem

単語の頻度でソートされたアルファベット頻度辞書を作成します。各単語の右側にある単語のリストは、ソース ファイルでの出現回数を降順で示す必要があります。単語数が同じ場合、並べ替えは辞書順で単語ごとに行われます。テキストの終わりの記号は「END!」です。 
  <本体>
入力 出力
1つ
2つ
3つ
1つ
2
2 2
1 2
3 1
 
Write the 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;
}         

     

Program check result

To check the solution of the problem, you need to register or log in!