1. ホーム
  2. c++

[解決済み] std::mapの拡張イニシャライザーリストはどのようなものでしょうか?

2023-02-01 08:34:39

質問

もしそれが存在するとしたら std::map 拡張イニシャライザーリストはどのようなものでしょうか?

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

どのように解決するのですか?

存在し、うまく動作しています。

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" } 
};