zliczanie wystąpienia poszszczególnych słów

Odpowiedz Nowy wątek
2011-08-22 17:17
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;
}
 

Pozostało 580 znaków

2011-08-22 17:34
0

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


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq, 2011-08-22 17:37

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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