zliczanie wystąpienia poszszczególnych słów

0

Witam,

Pisze programik, co ma wczytać słowa ze strumienia wejściowego i zapamiętać je w kontenerze vector. Mam wykorzystać funkcję, do zliczania łącznej liczby słów ciągu wejściowego oraz do zliczania wystąpień poszczególnych słów w ciągu wejściowym.

O ile mam napisane:

  • zapamiętywanie słów w kontenerze vector
  • zliczanie słów ciągu wejściowego

To nie mam napisane zliczania wystąpienia poszczególnych słów w ciągu wejściowym. Nie wiem jak do tego zabrać się.

Kod:

 
#include "stdafx.h"
#include <vector>
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

istream& WczytajSlowa(istream& in, vector<string>& n)
{
	if (in)
	{
		// pozbadz sie ewentualnych smieci w kontenerze
		n.clear();

		// wczytaj slowa
		string slowo;
		int licznikSlow = 0;
		while (in >> slowo)
		{
			n.push_back(slowo);
			licznikSlow++;
		}
		
		// podaj ilosc wystapienia slow
		cout << "Slow, to" << licznikSlow << endl;	
		
		// wyzeruj strumien tak, aby dalo sie poprawnie wczytac oceny kolejnego studenta
		in.clear();
	}
	return in;
}


int _tmain(int argc, _TCHAR* argv[])
{
	vector<string> napis;
	WczytajSlowa(cin, napis);
	sort(napis.begin(), napis.end());
	
	/*
	// sprawdz powtarzalnosc napisu
	for (int i=0; i < napis.size(); i++)
	{
		if (napis[i] == napis[i+1])
			cout << "powtarza sie" << napis[i] << endl;
	}

	*/
	system("pause");
	return 0;
}

0

podpowiedź:
map<string,int>
LUB za sort(...)
string ostatnie = napis[0];
int il = 1;
for (...)
{
if (...)
{
...
}
else
{
}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1