Iteracja map

AM
  • Rejestracja:około 17 lat
  • Ostatnio:około 2 lata
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:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

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


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:dzień
0
Kopiuj
	for (auto it=mapa.begin(); it!=mapa.end(); ++it)
		cout << it->first << " -> " << it->second << endl;
Endrju
  • Rejestracja:około 22 lata
  • Ostatnio:ponad rok
1

Można nawet prościej:

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

http://ideone.com/xNZ1SP


"(...) otherwise, the behavior is undefined".
AM
  • Rejestracja:około 17 lat
  • Ostatnio:około 2 lata
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 :)

Shalom
o_O przecież to pierwsze miejsce gdzie sie zagląda...
niezdecydowany
niezdecydowany
@Shalom w idealnym świecie chyba.

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.