c++ - 为什么不允许使用变长数组作为向量元素?
问题描述
例如:
#include<vector>
using namespace std;
int main()
{
vector<int[]> vec;//serious compiler error
vector<int[2]> vec={{1,2}};//error:array must be initialized with a brace-enclosed initializer
}
另外,如何纠正第二个的语法?我已经使用了大括号封闭的初始化程序。
解决方案
它不是可变长度数组,C++ 中不存在这些数组。它是一个没有大小说明符的数组,是一种不满足大多数(全部?)向量操作要求的不完整类型。
第二次尝试复制 c 数组(列表初始化总是复制),这也不支持。
如果您想要一个数组向量,请将其拼写为std::vector<std::array<int, 2>>
.
推荐阅读
- gremlin - Gremlin - sum values in group
- python - Python * changes the variable?
- flutter - How to make the stroke width 1px in flutter's customPainter
- java - Unity Ads Not Displaying?
- r - Why does one computer throw an error and another not, same code?
- c# - ArrayPool 创建方法在 C# 中给出错误
- javascript - 在反应原生外部组件中调用函数
- c# - 打开损坏的 .xls 文件
- javascript - 组件的条件渲染
- mongodb - 使用 typegoose 从嵌套对象自动创建新文档