如何使用<array>标头声明二维数组?

时间:2017-02-14 21:31:25

标签: c++ arrays visual-studio

我知道如何声明这样的二维数组:

int arr[5][5];

但我想以不同的方式做到这一点,就像我们声明一个像这样的一维数组:

array<int, 5> arr;

如何使用第二种数组声明方法声明二维数组?

3 个答案:

答案 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));