首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C++中表示大小在运行时确定的二维数组的最佳方法

在C++中表示大小在运行时确定的二维数组的最佳方法
EN

Stack Overflow用户
提问于 2008-11-02 00:10:47
回答 6查看 18.6K关注 0票数 20

在C++中,我想做一些类似的事情:

代码语言:javascript
复制
int n = get_int_from_user();

char* matrix = new char[n][n];

matrix[0][0] = 'c';
//...
matrix[n][n] = 'a';

delete [][] matrix;

但这当然行不通。做类似的事情最好的方法是什么?我已经看到了一些解决方案,但它们看起来相当混乱。

EN

回答 6

Stack Overflow用户

发布于 2008-11-02 00:17:06

我通常这样做:

代码语言:javascript
复制
char *matrix = new char [width * height];

matrix[i + j * width] = 'c'; // same as matrix[i][j] = 'c';

delete [] matrix;
票数 9
EN

Stack Overflow用户

发布于 2008-11-02 09:05:16

std::vector< std::vector<int> > array2d;呢?

票数 4
EN

Stack Overflow用户

发布于 2008-11-02 00:15:07

对于真正的二维数组:

代码语言:javascript
复制
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;

就在我的脑海里。毫无疑问,这是错误的。然而,我认为其他人发布了一种更优雅的方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/256297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档