二维数组的本质还是一个一维的数组,动态的创建一个M行N列的数组需要一点小技巧。
(1)new创建
T** matrix2 = new T*[M];//分配第一维
for (size_t i = 0; i < M; matrix2[i++] = new T[N]); //分配第二维
释放内存也需要按照维度依次释放:
for (size_t i =0; i < M; delete[] matrix2[i++]);
delete[] matrix2;
(2)vector
vector<vector<T>> matrix2(M, vector<T>(N));
(3)proxy class
后面再说