equal_range
-
Hi
Ich habe eine Frage zu der Funktion equal_range.
So wie ich das sehe, gibt das 2 iteratoren in ein paar zurueck. So hab ichs auch nachgelsen. Durch programmieren hab ich beim Multiset gesehen, das ein iterator auf das erste Element(pair.first) und auf das nächst verschiede zurueckgibt(pair.second). Richtig?Wenn das so ist, wofuer brauch ich die dann beim normalen set. Denn dort sind ja alle Elemente verschieden.
Vielleicht bin ich ja auch auf dem totalen Holzweg.
Und warum heisst equal_range?MFG
chewbo
-
equal_range() gibt letztendlich den Bereich aus, in dem ein gegebenes Element eingefügt werden kann, ohne die Sortierbedingung zu verletzen. Das gibt es als Algorithmus und (weil diese keine Random-Access-Iteratoren haben) als Memberfunktion für alle assoziativen Container.
Ja, set und map können da entweder einen leeren Bereich (result.first==result.last) oder einen Ein-Element-Bereich (++result.first==result.last) liefern, aber aus Gründen der Austauschbarkeit haben sie trotzdem diese Methode.
Durch programmieren hab ich beim Multiset gesehen, das ein iterator auf das erste Element(pair.first) und auf das nächst verschiede zurueckgibt(pair.second). Richtig?
Fast richtig. Wenn das gesuchte Element nicht vorkommt, gibt die Methode einen leeren Bereich zurück (beide Iteratoren zeigen auf das nächstgrößere Element des Containers).