2017-04-13 9 views
0

Wie initialisiert man die ungeordnete_map in C++ 98. Ich versuche, unten:C++ 98: Initialisierung std :: tr1 :: unordered_map

1. const std::tr1::unordered_map<std::string, int> mymap = {{key1,1}}; 
2. const std::tr1::unordered_map<std::string, int> mymap = {std::make_pair(key1,1)}; 

Compiler wirft Fehler:

C++98 ‘mymap’ must be initialized by constructor, not by ‘{...}’ 

Ich lernte von Stackoverflow, dass das obige Verfahren Initialisiererliste ist, die aus C++ 11 weiter unterstützt wird. Kannst du mir sagen, wie man mymap initialisiert? Oneway Ich denke, ist, Paare nacheinander in mymap einzufügen.

Antwort

0

in C++ 98 Sie können etwas wie eine Karte nicht initialisieren, wenn Sie es deklarieren. Sie können jedes Paar nur als separate Anweisung einfügen:

std::tr1::unordered_map<std::string, int> mymap; 
mymap.insert(std::make_pair(key1,1)); 
+0

Ich dachte darüber nach. Suche nach anderen Methoden, wenn es welche gibt. – Srini

+0

Es gibt keine. Wenn Sie möchten, dass die Karte konstant ist und Sie C++ 98 verwenden müssen, können Sie eine Kartenerstellungsfunktion verwenden, die die gewünschte Karte zurückgibt. – jhauris

Verwandte Themen