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


Anmelden zum Antworten