错误:数字常数之前的预期无限制ID:std :: array和std ::向量大小分配
error: expected unqualified-id before numeric constant: std::array and std::vector size allocation
错误源于我的代码中的宏定义:
#define NUM_ROWS 3
以下是完整源代码的Pastebin链接:
完成源代码
编译误差为
code.cpp:14:18: error: expected unqualified-id before numeric constant
#define NUM_ROWS 3
^
code.cpp:19:29: note: in expansion of macro ‘NUM_ROWS’
vector<array<int,NUM_COLS>>(NUM_ROWS) matrix;
^~~~~~~~
code.cpp:14:18: error: expected ‘)’ before numeric constant
#define NUM_ROWS 3
^
以下是编译器日志的粘贴链接:
编译器日志
我在堆栈溢出上查找了相关的错误,但是在这些错误的情况下,上下文似乎有所不同。在这种情况下,我打算使用宏来预定std::array
和std::vector
对象的大小。我想到使用宏,因为我的理解是我应该将常数用于大小。
感谢您的想法
一些可能对您有帮助的指针:
vector<array<int,NUM_COLS>>(NUM_ROWS) matrix;
是错误的,构造具有NUM_ROWS
元素的std::vector
的正确方法是
vector<array<int,NUM_COLS>> matrix(NUM_ROWS);
其次,我观看了您的代码(您可能需要将其添加到后代的问题中(
void set_matrix(vector<array<int,NUM_COLS>>(NUM_ROWS)&)
和类似定义的函数,将不起作用NUM_ROWS
不是vector
类型的一部分,请尝试
void set_matrix(vector<array<int,NUM_COLS>>&)
相关文章:
- C++11 中不同类型的对象的 std::array 的替代方案
- constexpr begin of a std::array
- C++如果必须在编译时确定大小,std::array 有什么意义?
- 标准::unordered_map 中的 std::array 的值初始化
- 确保编译时的特定 std::array 位置
- std::array的长度有大小限制吗?
- 将 std::array 移动到另一个 std::array
- 检查输入 std::array 指针数据是否等于某个常量数组
- 如何读/写或遍历 std::array 中的特定元素范围?
- 是否可以使用 std::array 作为 POD 结构的数据容器?
- 如何在C++中传递一个大小未知的 std::array?
- 将 std::array 推回 std::vector N 次的优雅方式
- 如何在 c++11 中静态断言 std::array 类成员进行排序?
- unqualified sort() -- 为什么它在 std::vector 上使用而不是在 std::array 上
- 按值返回 std::array
- 如何将变量内容常量转换为 std::array 的大小?
- 将初始化器列表/聚合初始化转发到 std::array 成员
- 无法推断类中的类型,构造函数采用 std::array
- 为什么 char 可以在 std::array 中初始化为 nullptr,而不是单独初始化?
- C++ IDE 不会推断/自动完成对模板类中的 std::array 下标表达式的成员访问