在C++11中初始化结构的C++std::数组
initialise a C++ std::array of struct in C++11
我读过类似的问题,但如果我有一个结构,有人知道为什么吗
struct ArabicRoman {
char roman;
int arabic;
};
我可以用以下方式初始化C++std::array
:
ArabicRoman M({'M', 1000});
ArabicRoman D({'D', 500});
array<ArabicRoman, 2> const SYMBOLS({ M, D });
我可以用以下方式初始化C样式数组:
ArabicRoman const SYMBOLS[]({ {'M', 1000}, {'D', 500} });
但是,以下内容未编译:
array<ArabicRoman, 2> const SYMBOLS({ {'M', 1000}, {'D', 500} });
初始化C++风格的结构数组有什么解决办法吗?
您需要将括号替换为大括号:
std::array<ArabicRoman, 2> const SYMBOLS {{ {'M', 1000}, {'D', 500} }};
^ ^
现场演示
相关文章:
- 初始化具有非默认构造函数的std::数组项的更好方法
- 输入std::数组时出现问题
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- C++如何生成std::数组列表
- 捕获lambda中的std::数组
- 转换函数,将 std::数组的双精度作为参数或双精度作为参数单独转换
- std::数组边界检查如何工作?
- 通过unique_ptr访问std::数组
- 初始化 std::数组 of Eigen::Map
- 传递 std::数组变量作为参数
- 在带有模板的函数中传递未知大小的 std::数组.如何更正此代码?
- 如何将 std::find() 与 2d std: 数组一起使用?
- std::数组派生类聚合初始化
- 在std::数组内部使用时,无法从std::函数构造类
- 使用从1到N的数字初始化std数组模板参数
- 正在声明多维std::数组
- 使用std::index_sequence对std::数组初始化进行包扩展
- 使用 std::type T 的数组来构造可从 T 构造的 std::数组
- 从 std::数组创建十六进制代表
- 使用默认值初始化 std::数组