96

それが存在する場合でも、std::map拡張初期化子リストはどのようになりますか?

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

4

2 に答える 2

157

それは存在し、うまく機能します:

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" } 
};
于 2010-07-14T20:55:59.047 に答える