2017-04-13 4 views
0

C++ 98でunordered_mapを初期化する方法。私は以下しようとしています:C++ 98: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)}; 

コンパイラはエラーをスローします。

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

私は上記の方法は以降C++ 11からサポートされている初期化子リストであることのStackOverflowから学びました。 mymapを初期化する方法を教えてください。私が考えているのは、ペアを1つずつ挿入してmymapすることです。

答えて

0

C++ 98では、宣言時にマップのようなものを初期化することはできません。各ペアは個別の文として挿入することができます:

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

私はこれを考えました。他のメソッドがある場合はそれを探します。 – Srini

+0

ありません。マップを一定にしてC++ 98を使用する必要がある場合は、必要なマップを返すマップ作成関数を持つことができます。 – jhauris

関連する問題