multimap-container schlüssel-wert
-
schönen abend an alle
ich habe folgendes problem, bzw. weiß nicht, wie ich anfangen soll
ich habe x schlüssel- werte in einem multimap-container
nun möchte ich in einer schleife, die map durch-iterieren.
und abfragen, wenn ein schlüssel den wert "XYZ" hat, soll er sowohl schlüssel, als auch wert ausgeben. da es durchaus möglich ist, dass in der ganzen map dieser wert mehrfach vorkommen kann, müssten am ende mehrere ausgaben da stehen.aber wie schon erwähnt, weiß ich leider auch nicht, wie ich da anfangen soll.
wäre nett, wenn ihr mir da helfen könntet, danke
grüße kylanysik
-
Meinst Du die stl-multimap? Da gibt es doch equal_range(), lower_bound() und upper_bound(). Sollte doch einfacher sein.
-
ich danke dir für die antwort.. aber ich weiß leider immer noch nicht so recht, wie ich das anwenden soll.. also ich möchte nocheinmal an einem beispiel veranschaulichen, was ich vor habe:
/*mein multimap container ist wie folgt aufgebaut:*/
13462: A
12432: D
21334: M
zahlen und buchstaben sind wahllos ausgewählt und das zieht sich über 100derte von einträgen hin. nun möchte ich, dass mir alle einträge ausgegeben werden, die ein " M " besitzen.grüße kylanysik
-
Du willst nach dem Wert und nicht nach dem Schlüssel suchen? Schreib' das doch gleich. Bist Du Dir sicher, dass die MultiMap ein geeigneter Container für Deine Zwecke ist?
Du könntest mit einem iterator durch die Menge gehen, iterator* sollte doch ein pair<Key, Value> übergeben, dort könntest Du den Wert mit (iterator*).second anfassen.
Eine andere Möglichkeit wäre remove_copy_if().
-
Ich glaube der OP verwechselt die std::multimap mit einem Multi-Index-Container (wie es sie z.B. in der Boost gibt).