C++静态初始化map<float,float[3]>
c++ statically initialize map<float, float[3]>
所以我有一个映射myMap,我试图静态初始化它(必须这样做)。
我正在做以下事情:
myMap =
{
{415, {1, 52356, 2}},
{256, {356, 23, 6}},
//...etc
};
然而,我得到了以下错误:"数组初始化器必须是一个初始化器列表。"
我上面的语法有什么问题?
您应该使用array<float, 3>
而不是"普通"arrray:
#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或更早版本。直到Visual Studio 2013才添加对std::map上初始化列表的支持。
相关文章:
- EASTL矢量<向量<int>>连续的
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 没有从阵列<float>到阵列<int>的可行转换
- 数组下标的类型"float*[float]"无效
- 没有合适的构造函数可以从"float"转换为"_D3DCOLORVALUE"
- 为什么我会收到此错误?无法将 {lb, ub} 从<大括号括起来的初始值设定项列表>转换为 float(**)(float*, int)
- 将 **float array 从 C++ Dll 传递给 python
- 错误:二进制'operator*' 'float'和'float[0]'类型的操作数无效
- float* 已在 Gameobject.obj 中定义
- 如何将 qml 的文本转换为 float 和 int
- 为什么将 1 添加到 numeric_limits<float>::min() 返回 1?
- 有没有比static_cast更优雅的从int到float的演员阵容<float>?
- 编译器给出错误:format 指定类型 'float *',但参数的类型'double' [-Wformat]
- OPENCL 警告:不兼容的指针类型将'float __global[16]'传递给类型为 '__global float4 的参数 *
- 错误:无法将"float*"转换为"float"
- 如何在函数中将字符串和分数存储为(Int 或 float)
- 缩小从double到float的转换
- 着色器将uint8投射到float,并将其重新解释回uint
- 我一直收到错误"cannot convert 'float*' to 'float' in return"
- 谷歌测试编译错误 Os X:函数式转换从"int"到"internal::FloatingEq2Matcher"的模糊转换<float>