【发布时间】:2015-07-24 22:39:04
【问题描述】:
我的想法如下:
例如一个二维数组:
int a[9][9];
std::vector<int** a> b;
如果我有怎么办
/* I know, it is usually a bad practise to have more than 2 dimensional arrays, but it can happen, when you need it */
int a[3][4][5][6];
std::vector<int**** a> b; // ? this just looks bad
【问题讨论】:
-
你能用
std::array代替c风格的数组吗? -
这是一个指针向量,而不是多维数组。要么使用向量的向量(向量......),要么使用平面
vector<int>使用算术进行多维索引。 -
@dwcanillas 是的,我可以使用 std::array
-
@Mike Seymour 使用算术进行多维索引被我的上级否决,因为这会使代码难以阅读和维护。但是,是的,这将是一个很好的解决方案。
-
@Snowman:将向量包装在一个类中,并将算法包装在一个访问器函数中。那么它就可以像
a(1,2,3) = 42;一样简单易读
标签: c++ c++11 vector multidimensional-array stdvector