web-dev-qa-db-ja.com

std :: map拡張初期化子リストはどのように見えるでしょうか?

存在する場合でも、std::map拡張初期化子リストのように見えますか?

いくつかの組み合わせを試してみました...まあ、GCC 4.4で考えられることはすべてありましたが、コンパイルされたものは何も見つかりませんでした。

80
rubenvb

存在し、うまく機能します:

std::map <int, std::string>  x
  {
    std::make_pair (42, "foo"),
    std::make_pair (3, "bar")
  };

マップの値タイプはpair <const key_type, mapped_type>。したがって、基本的に同じまたは変換可能なタイプのペアのリストが必要です。

Std :: pairによる統一された初期化により、コードはさらにシンプルになります

std::map <int, std::string> x { 
  { 42, "foo" }, 
  { 3, "bar" } 
};
133
doublep