静的に初期化しようとしているマップmyMapがあります(このようにしなければなりません)。C++静的にマップを初期化する<float、float [3]>
私は次のことをやっている:
myMap =
{
{415, {1, 52356, 2}},
{256, {356, 23, 6}},
//...etc
};
私は次のエラーを取得していますが、「配列初期化子は、初期化子リストでなければなりません」
私は上記の構文に間違いがありますか?
静的に初期化しようとしているマップmyMapがあります(このようにしなければなりません)。C++静的にマップを初期化する<float、float [3]>
私は次のことをやっている:
myMap =
{
{415, {1, 52356, 2}},
{256, {356, 23, 6}},
//...etc
};
私は次のエラーを取得していますが、「配列初期化子は、初期化子リストでなければなりません」
私は上記の構文に間違いがありますか?
あなたは代わりに「プレーン」arrrayのarray<float, 3>
を使用する必要があります。
#include <map>
#include <array>
#include <iostream>
int main()
{
std::map<float, std::array<float, 3>> myMap
{
{415, std::array<float, 3>{1, 52356, 2}},
{256, std::array<float, 3>{356, 23, 6}}
//...etc
};
/* OR
std::map<float, std::array<float, 3>> myMap
{
{415, {{1, 52356, 2}}},
{256, {{356, 23, 6}}}
//...etc
};
*/
std::cout << myMap[415][0] << " " << myMap[256][1] << " " << std::endl;
return 0;
}
はい、これは私のためにそれを固定するものです。ありがとうございました – user1855952
私は、あなたは、Visual Studio 2012またはそれ以前のバージョンを使用しようとしていると思われます。 std :: mapの初期化リストのサポートはVisual Studio 2013まで追加されませんでした。
これをチェックしてください。 http://stackoverflow.com/questions/2172053/c-can-i-statically-initialize-a-stdmap-at-compile-time –
私はそれをチェックして、私は同じ問題を抱えているとは思わないmapの代わりにmap 型のマップを静的に初期化しようとするとうまく動作するためです。値が配列の場合にのみこの問題が発生します –
user1855952
これを確認してくださいhttp://stackoverflow.com/questions/138600/initializing-a-static-stdmapint-int-in-c – vinod