Zliczenie tych samych nazw z txt

0

Mam taki problem: otóż z pliku "nazwiska.txt" mam sprawdzić ile razy się powtarzają te same nazwiska. W teorii wiem jak to zrobić, gorzej z praktyką. Stworzyłem:

 int a=1; //ilość tych samych nazwisk
std:: fstream plik( "nazwiska.txt", std::ios::in );// wczytanie pliku
string nazwa,teraz;
for(int i=1;i<ilosc;i++) //ilosc oznacza ilość wierszy
{
    plik>>nazwa; 
      
     
      
     for(int i=1;i<ilosc;i++)
      
      {     
      plik>>teraz;
      
     if(nazwa==teraz)
      a++;
     }
//
}

Ten oto program porównuje tylko pierwszy wiersz:(. Domyślam się,że trzeba: "teraz" wyzerować po końcu pętli, tylko nie wiem jak.

0

Jeżeli plik nie jest jakiś duży(tzn. możesz go wczytać do pamięci) dużo lepszym rozwiązaniem będzie powiedzmy skorzystanie z jakiegoś kontenera realizującego zbiór (np. set z stl'a). Wrzucasz do niego kolejne wczytane nazwiska i jeżeli dodanie się nie uda tzn., że nazwisko się powtórzyło.
Tak by było chyba najprościej.

Jeżeli rzeczywiście chcesz lecieć sprawdzając pierwszy wiersz z resztą, potem drugi wiersz z resztą itd. to musisz pamiętać jeszcze o wykluczeniu już zliczonych nazwisk.

0

Dzięki z wskazówki, ale zrobiłem "moim" sposobem, z użyciem tablic

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