我有一个名为myMap的地图,我正在尝试进行静态初始化(必须以这种方式完成)。
我正在执行以下操作:
myMap =
{
{415, {1, 52356, 2}},
{256, {356, 23, 6}},
//...etc
};
然而我得到了以下错误:“数组初始化器必须是初始化列表。”
我的语法有什么问题?
我有一个名为myMap的地图,我正在尝试进行静态初始化(必须以这种方式完成)。
我正在执行以下操作:
myMap =
{
{415, {1, 52356, 2}},
{256, {356, 23, 6}},
//...etc
};
您应该使用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;
}
我猜测你正在尝试使用Visual Studio 2012或更早版本。对于std::map的初始化列表的支持直到Visual Studio 2013才被添加。