Heim > Backend-Entwicklung > C++ > Wie kann ich Schlüssel und Werte effizient aus einer std::map in Vektoren extrahieren?

Wie kann ich Schlüssel und Werte effizient aus einer std::map in Vektoren extrahieren?

Patricia Arquette
Freigeben: 2024-12-11 02:31:10
Original
372 Leute haben es durchsucht

How Can I Efficiently Extract Keys and Values from a std::map into Vectors?

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;
}
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage