Abrufen von Schlüsseln und Werten aus einer std::map in einen Vektor
Bei der Arbeit mit std::maps ist es oft notwendig entweder die Schlüssel oder die Werte einzeln verarbeiten. Während die Definition eines benutzerdefinierten Funktors diese Aufgabe erfüllen kann, stehen effizientere Methoden zur Verfügung.
Iteratoren verwenden:
Der einfachste Ansatz ist die Verwendung von std::map-Iteratoren :
std::map<int, int> m; std::vector<int> keys; std::vector<int> values; for (std::map<int, int>::iterator it = m.begin(); it != m.end(); ++it) { keys.push_back(it->first); values.push_back(it->second); std::cout << "Key: " << it->first << std::endl; std::cout << "Value: " << it->second << std::endl; }
Boost verwenden Bibliothek:
Wenn Sie die Boost-Bibliothek verwenden, können Sie das BOOST_FOREACH-Makro für mehr Einfachheit nutzen:
std::map<int, int> m; std::vector<int> v; BOOST_FOREACH(const std::pair<int, int>& me, m) { v.push_back(me.first); std::cout << me.first << "\n"; }
Durch die Verwendung dieser Ansätze können Sie die effizient extrahieren und verarbeiten Schlüssel oder Werte aus einer std::map in einen Vektor, ohne dass komplexe Funktoren erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie kann ich Schlüssel und Werte effizient aus einer std::map in Vektoren extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!