auf dei einzelnen Elemente der Map zugreifen
-
Hallo,
kann mir jemand sagen wie ich auf die einzelnen Elemente der Map zu greifen kann ? Folgender Code funzt nicht ganz.
#include <map> #include <string> #include <algorithm> #include <iostream> #include <conio.h> using namespace std; void main() { map<string, string> mymap; map<string, string>::iterator it; mymap.insert(pair<string, string>("sinus1.wav", "list1_1")); mymap.insert(pair<string, string>("square1.wav", "list1_2")); mymap.insert(pair<string, string>("triangle1.wav", "list1_3")); for(it=mymap.begin(); it!=mymap.end(); it++) cout << *it; // das funktioniert nicht getch(); }
-
Was sind denn deiner Meinung nach die Elemente der Map? Die Schlüssel? Die Werte? Der Standard sagt dazu eindeutig (sinngemäß)
typedef pair<const key_type, mapped_type> value_type;
Das ist der Typ, auf den die Iteratoren zeigen. Gucken wir uns pair an (wieder nur sinngemäß) ...
template<typename T, typename U> struct pair { T first; U second; };
Um also die Zuordnungen auszugeben:
for (map<string, string>::const_iterator it = mymap.begin(); it != mymap.end(); ++it) { cout << it->first << " => " << it->second << endl; }
-
Der Iterator liefert ja ein pair. Auf die Einzelelemente kommst du dann mit it->first oder it->second.
[Edit]Das war wohl zu spät[Edit]
-
danke es funzt juhuuuuuu