Maison >développement back-end >C++ >Comment initialiser efficacement un `std::map` statique en C ?

Comment initialiser efficacement un `std::map` statique en C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-16 12:53:10712parcourir

How to Effectively Initialize a Static `std::map` in C  ?

Initialisation de std::map en C

Lorsque l'on travaille avec des cartes statiques en C , on peut s'interroger sur la méthode appropriée d'initialisation. Cette question examine les options disponibles pour initialiser efficacement une carte statique.

Liste d'initialisation C 11

Une approche consiste à utiliser les listes d'initialisation C 11. Ces listes permettent de spécifier les valeurs initiales entre accolades, en préservant l'ordre d'insertion. La carte trie automatiquement les éléments en fonction de leurs clés.

#include <map>

using namespace std;

map<int, char> m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}};

Bibliothèque Boost.Assign

Vous pouvez également utiliser la bibliothèque Boost.Assign, qui fournit la map_list_of macro. Cette macro facilite l'initialisation des cartes avec des paires clé-valeur dans une syntaxe concise :

#include <map>
#include "boost/assign.hpp"

using namespace std;
using namespace boost::assign;

map<int, char> m = map_list_of(1, 'a')(3, 'b')(5, 'c')(7, 'd');

En tirant parti de la liste d'initialisation ou de la bibliothèque Boost.Assign, vous pouvez facilement initialiser des cartes statiques en C , créant ainsi un environnement pratique et approche efficace.

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!

Déclaration:
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