Multimap-Äquivalent in der STL?



  • Hi,

    ich habe std::pair-Elemente mit einem int sowie einem weiteren Element. Diese Pairs möchte ich nun in einem Container speichern und dann auf Basis des int-Wertes wiederauffinden.

    Im Prinzip also genau das, was std::map bereits macht - nur mit dem Unterschied, dass int-Werte bei mir auch mehrfach vorkommen können. In dem Fall soll die Suchfunktion das erste Pair in diesem Container liefern, für das der int gleich dem gesuchten Wert ist.

    Was aus der STL nehme ich am besten dafür?

    Zornk!




  • Mod

    Hmm, schwere Frage. Wie wäre es mit multimap? 😃



  • Upps...lustig...in der Menüspalte links war die multimap nicht drin ,deswegen habe ich sie nicht gefunden.

    Allerdings: bei einem insert werden die eingefügten Elemente entweder nach dem Key sortiert oder bei gleichen Keys vor dem bereits vorhandenen eingefügt. Das wäre genau andersherum, als ich es brauche. Es gibt aber kein push_back und kein find_reverse


  • Mod

    Zornk schrieb:

    Allerdings: bei einem insert werden die eingefügten Elemente entweder nach dem Key sortiert oder bei gleichen Keys vor dem bereits vorhandenen eingefügt. Das wäre genau andersherum, als ich es brauche. Es gibt aber kein push_back und kein find_reverse

    Ich bin nicht sicher, ob die Einfügestelle bei einfachem insert relativ zu äquivalenten Elementen überhaupt spezifiziert ist.

    Wenn die Einfügestelle genau bestimmt sein soll, muss sie angegeben werden (über die insert-Version mit 2 Argumenten). Die Einfügestelle könnte dann in diesem Fall mit upper_bound ermittelt werden.



  • wenn du eine garantiert stabile einfügereihenfolge brauchst, wirst du um std::vector und std::stable_sort nicht herum kommen.


Log in to reply