C++ 声明具有大小函数的 2D 数组
C++ Declaring a 2d array with a size function
我正在尝试使用 stl map 的 size(( 方法声明一个 2d 数组:
const int size = edge_map.size();//get row and column size
int a[size][size];//nxn matrix
我不断收到编译器错误,即大小必须是常量值,即使我将其声明为常量。在不必使用动态 2D 数组的情况下,是否有任何解决方法?
数组的静态内存分配可以接受变量,只要变量的值可以在编译时确定。此要求的原因是编译器必须知道要为堆栈上的数组分配多少内存。如果edge_map
听起来像(某种容器可以在整个存在过程中改变大小(,您将无法以这种方式做到这一点。
但是,如果不是这种情况,并且edge_map.size()
有一个可以在编译时确定的返回值,则将该函数标记为constexpr
应该允许此代码工作。
const
表示不更改其原始(初始(值。
但是size
必须在编译时知道,因为编译器/链接器为非局部变量(声明为任何函数(分配内存。
相关文章:
- 如何在C++函数中声明静态 2D 数组?
- 如何在 C++ 中使用它的构造函数初始化 unique_ptrs 的 2D 向量?
- 将 2D 推力::d evice_vector 复矩阵传递给 CUDA 内核函数
- 如何在构造函数中使用初始值设定项设置具有相同值的 2d 数组?
- 使用指针算法修改函数中的 2D 数组
- 交换函数不是在 C++ 中交换 2D 数组的元素
- 无法分配函数指针的 2D 数组
- 无法将 2D 数组传递到 c++ 中的帮助程序函数中
- 打印 2D 动态数组 c++ 函数
- 如何在类中制作 2D 数组元素,然后在其构造函数中指定其维度?
- 创建整数的 2D 数组,该数组将使用两个函数用随机数填充矩阵.我做错了什么?
- 在 c 和 c++ 中将 2D 数组传递给函数
- 如何创建一个接受2D数组的构造函数
- 我怎么能有一个以2D数组为参数的函数,而数组有一个我想更改的参数/维度
- C++尝试告诉函数要使用哪个 2D 数组
- 如何将 2D 数组传递到函数 (C++)中?
- 将 2D 数组指针传递给 C++ 中的函数
- 将直方图的 2D 数组传递给函数 (C++)?
- 我无法在函数中动态分配 2D 数组
- 来自 2D 数组的字符串函数