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

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

DDD
DDDoriginal
2024-12-09 13:04:10183parcourir

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

Initialisation d'une carte statique en C

En C , initialisation d'une carte statique std::map présente un défi unique. Il n'existe pas de méthode simple comme l'utilisation d'une liste d'initialisation ou d'une fonction statique. Cependant, plusieurs approches offrent des solutions alternatives.

Utilisation de la liste d'initialisation C 11

C 11 introduit une syntaxe de liste d'initialisation qui peut être utilisée pour initialiser la carte. Les éléments entre accolades sont entourés de paires d’accolades, chaque paire représentant une paire clé-valeur. L'ordre d'initialisation n'a pas d'importance car la carte trie automatiquement les éléments en fonction de leurs clés.

#include <map>

using namespace std;

static map<int, int> m = {{1, 2}, {3, 4}, {5, 6}};

Utilisation de Boost.Assign

Boost.Assign est une bibliothèque qui fournit des macros pratiques pour initialiser des cartes et autres structures de données. Il offre une syntaxe concise pour spécifier des paires clé-valeur dans une carte.

#include <boost/assign.hpp>

using namespace std;
using namespace boost::assign;

static map<int, int> m = map_list_of(1, 2)(3, 4)(5, 6);

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