Was passiert, wenn zwei Paare mit gleichen Schlüssel in eine STL-Map eingefügt werden?



  • //Wie kann ich eine If-Abfrage machen, indem ich false oder true zurückgebe-> Wenn der 
    Schlüssel schon vorhanden ist. Hier der Schlüssel "2" ist zweimal vorhanden und ich frage 
    mich, wie ich das ausgeben lassen kann, dass er mir sagt das es schon vorhanden ist. Weil ich
     keine Ahnung habe, wie ich auf die Schlüssel zugreifen soll. Beziehungsweise, zwei identische
     Schlüssel vergleiche und den letzten sozusagen rausschmeiße, weil der schon vorhanden ist. 
    
    
    int main()
    {
    
        // initialize container
        map<int, int> mp;
    
        // insert elements in random order
       
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
        mp.insert({ 3, 60 });
    
        // does not inserts key 2 with element 20
        mp.insert({ 2, 20 });
        mp.insert({ 5, 50 });
    
        // prints the elements
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }


  • @NewbieCoding schau doch mal in der Referenz nach: https://en.cppreference.com/w/cpp/container/map

    Mit count oder find kannst du schauen, ob ein Key schon existiert. Insert hat einen return-Code, der ggf. Für dich interessant ist.

    Mehr als 1 Eintrag pro Key geht bei einer map nicht. Dann brauchst du eine multumap, siehe https://en.cppreference.com/w/cpp/container/multimap



  • @wob Dankeschön!!


Log in to reply