Heim >Backend-Entwicklung >C++ >Wie initialisiere ich eine statische „std::map' in C?

Wie initialisiere ich eine statische „std::map' in C?

DDD
DDDOriginal
2024-12-09 13:04:10235Durchsuche

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

Initialisieren einer statischen Karte in C

In C wird das Initialisieren einer statischen Karte std::map stellt eine einzigartige Herausforderung dar. Es gibt keine einfache Methode wie die Verwendung einer Initialisierungsliste oder einer statischen Funktion. Es gibt jedoch mehrere Ansätze, die alternative Lösungen bieten.

Verwendung der C 11-Initialisierungsliste

C 11 führt eine Initialisierungslistensyntax ein, die zum Initialisieren der Karte verwendet werden kann. Die Elemente in geschweiften Klammern werden in geschweiften Klammerpaaren eingeschlossen, wobei jedes Paar ein Schlüssel-Wert-Paar darstellt. Die Reihenfolge der Initialisierung ist irrelevant, da die Karte die Elemente automatisch anhand ihrer Schlüssel sortiert.

#include <map>

using namespace std;

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

Boost.Assign verwenden

Boost.Assign ist eine Bibliothek, die Bietet praktische Makros zum Initialisieren von Karten und anderen Datenstrukturen. Es bietet eine prägnante Syntax zum Spezifizieren von Schlüssel-Wert-Paaren innerhalb einer Karte.

#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);

Das obige ist der detaillierte Inhalt vonWie initialisiere ich eine statische „std::map' in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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