我知道如何声明这样的二维数组:
int arr[5][5];
但我想以不同的方式做到这一点,就像我们声明一个像这样的一维数组:
array<int, 5> arr;
如何使用第二种数组声明方法声明二维数组?
答案 0 :(得分:10)
作为一个数组数组,如下:
std::array<std::array<int, 5>, 5> arr;
不幸的是,没有“短”语法,但您可以创建一个:
template <class T, std::size_t rows, std::size_t cols>
using two_dim_array = std::array<std::array<T, cols>, rows>;
two_dim_array<int, 5, 5> arr;
答案 1 :(得分:4)
array<array<int, 5>, 5> arr;
答案 2 :(得分:1)
您需要声明数组的数组
std::array<std::array<int, 5>, 5> arr;
如果您不确定数组的大小,最好声明一个二维向量
vector<vector<data_type>> 2dMatrix;
如果你知道2-D矩阵的大小,那么就可以用这种方式声明。
vector<vector<data_type>> 2dMatrix(row,vector<data_type>(column));