我想创建几个相同大小的2D数组。例如table1 [80] [3],table2 [80] [3],table3 [80] [3],...,tableN [80] [3]。但是要创建的数组的数量(N)将由用户提供。 那么,我该如何动态创建这些数组呢? 在此先感谢.. :))
答案 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]
好吗?您的里程可能会有所不同。