Tablica asocjacyjna


#include<iostream> 

#include<algorithm>

#include<fstream>

#include<string>

#include<map>

 

using namespace std;

 

int main()

{

    string a;

    map<string, int> anagramy;  // <typ klucza, typ wartosci> nazwa mapy

    int ile=1;

    int suma=0;

 

 ifstream odczyt ("dane.txt");

 ofstream zapis ("wynik.txt");        

 

  while(!odczyt.eof())

  {

      odczyt>>a;         

      sort(a.begin(), a.end());        //sort dziala w czasie O(n log n)    

      anagramy[a]++;                   // sumuje wystapienia tego samego klucza

      ile=max(ile, anagramy[a]); 

  }

 

 

        map<string, int>::iterator it;    //deklaracja iteratora dla mapy (slownika)

        for(it=anagramy.begin(); it!=anagramy.end(); ++it)

         {

             zapis<<it->first<<"  "<<it->second<<endl;  //elementy tablicy wypisane rosnaco

                                                                                     // i w porzadku alfabetycznym po it->first

            if(it->second==1)

            suma++;   // sumuje pojedyncze wystapienia liczb w pliku

        }

 

 

zapis<<endl<<endl<<endl<<ile;

zapis<<endl<<suma;

 

odczyt.close();

zapis.close();

return 0;

}