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!!