[C++]Iteracja map
Ostatnio zmodyfikowano 2014-04-05 11:14
Amakesh Temat założony przez niniejszego użytkownika |
[C++]Iteracja map » 2014-04-02 21:44:29 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. kod: 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 ? |
|
NikPL |
» 2014-04-03 00:02:02 Z tego co mi się zdaje to mapa nie posiada operatora +=. |
|
waxx |
» 2014-04-03 01:06:04 iterując po mapie użyj iteratorów for( auto iter = ilosc.begin(); iter != ilosc.end(); ++iter ) { }
|
|
pekfos |
» 2014-04-04 14:58:26 Z tego co mi się zdaje to mapa nie posiada operatora +=. |
Faktycznie, nie ma. Jak to się ma do czegokolwiek, co padło w tym temacie? To by się nie skompilowało. |
|
waxx |
» 2014-04-04 23:38:47 Ale co nie skompilowało? Zdajesz sobie sprawę, że to był komentarz... for( auto & iter: map ) { }
Żeby nie kopiować elementu :) |
|
pekfos |
» 2014-04-05 10:07:02 Ale co nie skompilowało? Zdajesz sobie sprawę, że to był komentarz... |
A jaki był cel tego komentarza? Przykład użycia iteratora? Bardzo nietrafiony.. |
|
waxx |
» 2014-04-05 11:14:22 No ale czemu się tak czepiasz? lepiej? )) |
|
« 1 » |