如何在C ++中动态给出2D数组的名称?

时间:2015-02-01 21:17:59

标签: c++ arrays

我想创建几个相同大小的2D数组。例如table1 [80] [3],table2 [80] [3],table3 [80] [3],...,tableN [80] [3]。但是要创建的数组的数量(N)将由用户提供。 那么,我该如何动态创建这些数组呢? 在此先感谢.. :))

2 个答案:

答案 0 :(得分:1)

您不能在c ++中拥有变量或函数的动态符号名称。这些只在编译代码时很重要,并且无法在程序的运行时生成它们。

正如我的评论中所提到的,您最接近的事情是将这些表格映射为某些std::string值,例如

std::map<std::string,std::array<std::array<int,3>,80>> tables;

并操纵像这样的值

tables["table1"][20][1] = 0;
tables["table2"][10][0] = 42;
// etc. ...

答案 1 :(得分:0)

听起来像一个3d数组:

typedef int T[80][3]; // T is your 2d array type

T* tables = new T[N]; // an array of N T's.

或阵列和载体的有趣混合:

std::vector<T> tables(N); // the same, but safer

当然,这些不是 ...但是table1真的比tables[0]好吗?您的里程可能会有所不同。