在C++中,我想做一些类似的事情:
int n = get_int_from_user();
char* matrix = new char[n][n];
matrix[0][0] = 'c';
//...
matrix[n][n] = 'a';
delete [][] matrix;
但这当然行不通。做类似的事情最好的方法是什么?我已经看到了一些解决方案,但它们看起来相当混乱。
发布于 2008-11-02 00:17:06
我通常这样做:
char *matrix = new char [width * height];
matrix[i + j * width] = 'c'; // same as matrix[i][j] = 'c';
delete [] matrix;
发布于 2008-11-02 09:05:16
那std::vector< std::vector<int> > array2d;
呢?
发布于 2008-11-02 00:15:07
对于真正的二维数组:
int n = get_int_from_user();
char** matrix = new char*[n];
for (int i = 0; i < n; i++) {
matrix[i] = new char[n];
}
// Operations on matrix.
for (int i = 0; i < n; i++) {
delete [] matrix[i];
}
delete matrix;
就在我的脑海里。毫无疑问,这是错误的。然而,我认为其他人发布了一种更优雅的方法。
https://stackoverflow.com/questions/256297
复制相似问题