finden Sie in std::vector<std::pair>
Ich habe einen Vektor von Paaren aus. Die erste des Paares ist vom Typ std::string und der zweite ist vom Typ Container.
Welche bequem Funktionalität besteht in std oder zu steigern, so dass ich zurückkehren kann, einen Behälter gegeben, der string-Wert als Schlüssel?
UPDATE
Es wurde kommentiert, dass könnte ich eine std::map statt, aber ich wirklich brauchen, um die Erhaltung der Reihenfolge der Elemente in der Reihenfolge, die ich drücken Sie Sie an den vector.
In diesem Fall, warum
Prowl habe ich markiert meine Frage, wie c++98
Ich muss beibehalten der Reihenfolge der Elemente im vector
Sorry, ich verpasste den tag. Nun, die Antwort ist die gleiche, außer für den Teil in Klammern
std::vector
und nicht std::map
?std::find_if
und ein benutzerdefiniertes Prädikat (lambda in C++11)Prowl habe ich markiert meine Frage, wie c++98
Ich muss beibehalten der Reihenfolge der Elemente im vector
Sorry, ich verpasste den tag. Nun, die Antwort ist die gleiche, außer für den Teil in Klammern
InformationsquelleAutor Baz | 2013-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine mögliche Lösung:
Hier ein komplettes Beispiel:
Und hier ist ein live-Beispiel.
InformationsquelleAutor Andy Prowl
Mit Boost.Angebot und Boost.Binden, können Sie dies tun:
boost::bind
mitstd::bind1st
und loszuwerden, steigern Sie auf diese Weise.InformationsquelleAutor Paul Fultz II
Gibt es eine einfache Lösung: verwenden Sie
std::copy
undstd::inserter
:String_To_Data_Map string_to_data_map(string_data_pairs.begin(), string_data_pairs.end());
?Ja... ja, das können Sie. Ich vergesse manchmal über die range-basierte Konstruktoren.
InformationsquelleAutor Charles L Wilcox
Arbeitete für mich!
InformationsquelleAutor Stefan Matta