Iteracja map

AM
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam!

Mam problem z wydobyciem obiektów z mapy, potrzebuję wypisać w dowolnej kolejności zawartość mapy <int, int>. Problem może dla większości być błahy, jednak mam problemy ze wskaźnikami i z tego co widzę by dostać się do elementów mapy, potrzeba użyć iteratora, który przypomina wskaźniki.

Kopiuj
void w( vector < int > & tab ) {
    map < int, int > ilosc;
    for( int j = 0; j < tab.size(); ++j ) {
        cout << "element tablicy" << tab.at( j ) << endl;
        ilosc[ tab.at( j ) ] += 1;
    }
}

funkcja wypisuje elementy przyjmowanej tablicy i dodaje je do mapy pod indeksem wartości elementu tablicy, zaś wartości elementów mapy to ilość powtórzeń elementów tablicy (zliczam powtórzenia liczb w wektorze ).

Ewentualnie czy istnieje inny sposób wypisania wszystkich elementów mapy ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Rozumiem że ukradli dokumentacje? :(
http://www.cplusplus.com/reference/map/map/begin/

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
	for (auto it=mapa.begin(); it!=mapa.end(); ++it)
		cout << it->first << " -> " << it->second << endl;
Endrju
  • Rejestracja: dni
  • Ostatnio: dni
1

Można nawet prościej:

Kopiuj
for (auto &element : map) {
   std::cout << element.first << " -> " << element.second << '\n';
}

http://ideone.com/xNZ1SP

AM
  • Rejestracja: dni
  • Ostatnio: dni
0

Faktycznie, z c++ mierzę się od niedana i tak naprawdę jeszcze nie było okazji do zaglądania w dokumentację, dziękuję za odpowiedzi, pomogły :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.