C++ c++;静态初始化映射<;浮动,浮动[3]>;
所以我有一个映射myMap,我正试图静态初始化它(必须这样做) 我正在做以下工作:C++ c++;静态初始化映射<;浮动,浮动[3]>;,c++,arrays,list,map,static,C++,Arrays,List,Map,Static,所以我有一个映射myMap,我正试图静态初始化它(必须这样做) 我正在做以下工作: myMap = { {415, {1, 52356, 2}}, {256, {356, 23, 6}}, //...etc }; 但是我得到了以下错误:“数组初始值设定项必须是初始值设定项列表。” 我上面的语法有什么问题 您应该使用数组而不是“普通”数组: #包括 #包括 #包括 int main() { std::map myMap { {415,std::数组{152356,2}
myMap =
{
{415, {1, 52356, 2}},
{256, {356, 23, 6}},
//...etc
};
但是我得到了以下错误:“数组初始值设定项必须是初始值设定项列表。”
我上面的语法有什么问题 您应该使用
数组
而不是“普通”数组:
#包括
#包括
#包括
int main()
{
std::map myMap
{
{415,std::数组{152356,2},
{256,std::数组{356,23,6}
//…等等
};
/*或
std::map myMap
{
{415, {{1, 52356, 2}}},
{256, {{356, 23, 6}}}
//…等等
};
*/
std::cout我怀疑您正在尝试使用Visual Studio 2012或更早版本。直到Visual Studio 2013才添加对std::map上的初始化列表的支持。检查此项。我已经检查过了,我认为我没有遇到同样的问题,因为我尝试静态初始化map类型的map而不是map类型的map效果很好。我只当值是数组时会出现此问题请检查此问题仅当我尝试使用值数组进行此操作时才会出现。不过,我上面所做的基本上是他们在您发布的链接中所说的操作此链接应该很有用。
#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;
}