Zugriff bei Multimap mit Index



  • Hallo,

    wie kann ich denn bei einer Multimap den first und second part mit einem Zähler auslesen oder wie bekomme ich es hin, dass bei einem insert einer multimap die einträge nicht automatisch sortiert werden?

    #include <map>
    
    using namespace std;
    
    for(int i=0; i < eine_multimap.size(); i++) {
    
       cout << eine_multimap[i]->first;
    
     }
    

    So wie ich es hier darstelle geht es ja nicht, aber mir fällt auch nicht ein wie es funktionieren könnte.

    danke für die Hilfe.

    gruß

    anno



  • Garnicht. Eine multimap ist (in meiner STL) ein balancierter Baum, der nach irgendwelchen Kriterien die Knoten sortieren muss um nicht zu degenerieren. Eine sequenzielle Reihenfolge (wie bei vector) existiert nicht, stattdessen wird die Reihenfolge bei der Iteration durch den Vergleichsoperator festgelegt (normalerweise ist das std::less).
    Um über alle Elemente einer multimap zu iterieren muss du über alle Elemente von [begin,end) laufen.



  • ok danke. dann muss ich wohl doch einen vector nehmen.



  • Hallo wieso machs doch wie DocShoe geschrieben hat:

    #include <map> 
    
    using namespace std; 
    
    multimap<x,y>::iterator iter;
    
    for(iter = eine_mm.begin(); iter != eine_mm.end(); iter++) { 
    
       cout << iter->first; 
    
     }
    

Anmelden zum Antworten