c++中的二维整数数组
2-D Integer Array in C++
我试图在c++中创建一个堆上的二维整数数组。我错了:
int** a = new int*[5][6];
IDE没有显示任何错误,但在编译时我得到以下错误:
错误:初始化时无法将'int*(*)[6]'转换为'int**'
我已经找到了有效的方法来创建一个2-D数组,但我只是好奇上面到底发生了什么,错误意味着什么?
c++中固定长度数组的拼写为std::array
:
std::array<std::array<int,5>,6> arr;
可变大小的数组用std::vector
:
std::vector<std::vector<int>> arr;
你几乎不应该将new
与这些中的任何一个一起使用(或者在其他任何地方)。但是,如果你真的需要,没有问题:
auto arr = new std::array<std::array<int,5>,6>;
这应该是很少需要的。最好将数组包装在面向问题的类中,并使用智能指针管理该类的堆分配对象。
相关文章:
- 将二维矢量传递给类
- 将值从二维数组输出到文本文件
- 我在二维向量中是否正确分配了内存
- 带结构的二维矢量:如何存储元素
- 在二维数组中查找最小值和最大值?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 如何将整数字符串转换为整数的二维向量?
- 从二维整数数组中的文件中读取
- 将整数线读取到二维数组中
- 如何使用Matlab mex输出二维整数数组
- 如何在C++中声明动态二维整数数组
- 打印空白,而不是二维数组c++中的整数
- 从文件中读取整数并将其存储在二维矢量中
- 旋转整数的二维数组
- visual C++将整数的二维数组插入到另一个整数的二维阵列中
- 整数C++的二维向量。怎么了?
- 如何编写一个程序,从键盘上填充一个二维整数表a[3][2]
- 是集合中的二维整数坐标
- 编写一个程序,使用冒泡排序对二维数组中的整数按升序排序
- c++中的二维整数数组