Dies ist einer der möglichen Wege, ich komme aus:Wie alle Schlüssel (oder Werte) von einer std :: map abgerufen und in einen Vektor eingefügt werden?
struct RetrieveKey
{
template <typename T>
typename T::first_type operator()(T keyValuePair) const
{
return keyValuePair.first;
}
};
map<int, int> m;
vector<int> keys;
// Retrieve all keys
transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey());
// Dump all keys
copy(keys.begin(), keys.end(), ostream_iterator<int>(cout, "\n"));
Natürlich können wir auch alle Werte aus der Karte abrufen, indem RetrieveValues eine andere Funktors definieren.
Gibt es einen anderen Weg, um dies leicht zu erreichen? (Ich frage mich immer, warum std :: map für uns keine Member-Funktion enthält.)
Ihre Lösung ist die beste ... – linello