Maison > développement back-end > C++ > Comment puis-je extraire efficacement les clés et les valeurs d'un std :: map vers des vecteurs ?

Comment puis-je extraire efficacement les clés et les valeurs d'un std :: map vers des vecteurs ?

Patricia Arquette
Libérer: 2024-12-11 02:31:10
original
283 Les gens l'ont consulté

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

Récupération des clés et des valeurs d'un std::map dans un vecteur

Lorsque vous travaillez avec std::maps, il est souvent nécessaire de traiter les clés ou les valeurs individuellement. Bien que la définition d'un foncteur personnalisé puisse accomplir cette tâche, il existe des méthodes plus efficaces disponibles.

Utilisation d'itérateurs :

L'approche la plus simple consiste à utiliser les itérateurs std::map :

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;
}
Copier après la connexion

Utiliser Boost Bibliothèque :

Si vous utilisez la bibliothèque Boost, vous pouvez exploiter la macro BOOST_FOREACH pour une plus grande simplicité :

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";
}
Copier après la connexion

En utilisant ces approches, vous pouvez extraire et traiter efficacement le clés ou valeurs d'un std::map dans un vecteur sans avoir besoin de foncteurs complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal