Answer to Question #324836 in C++ for Program Training

Question #324836

Write a program that reads a list of words. Then, the program outputs those words and their frequencies. The input begins with an integer indicating the number of words that follow. Assume that the list will always contain fewer than 20 words.

Ex: If the input is: 

5 hey hi Mark hi mark

the output is: 

hey - 1
hi - 2
Mark - 1
hi - 2
mark - 1

Hint: Use two vectors, one vector for the strings and one vector for the frequencies.


1
Expert's answer
2022-04-06T13:55:10-0400
#include <iostream>
#include <string>
#include <vector>
#include <map>

using namespace std;


int main()
{
	map<string,int>mp;
	vector<string>vs;
	string tmp;
	int num;
	cout << "Please, enter a number of words and words: ";
	cin >> num;
	for (int i = 0; i < num; i++)
	{
		cin >> tmp;
		vs.push_back(tmp);
		if (mp.find(tmp) == mp.end())
			mp.insert(make_pair(tmp, 1));
		else
		{
			mp[tmp]++;
		}
	}
	for (int i = 0; i < num; i++)
	{
		cout << vs[i] << " - " << mp[vs[i]] << endl;
	}
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS