假设我有一个多维数组,在 C99 中我可以这样写:
#define SIZE1 10
int size2;
[...]
int myArray[SIZE1][size2];
尽管有多个编译器支持,但这并不是严格意义上的 C++,直到 C++14 才会包含在内。为了使用 boost::scoped_array 获得相同的(除了堆栈/堆问题与我的情况无关),我写道:
boost::scoped_array<int> myArray[SIZE1];
for (int i = 0; i < SIZE1; i++)
myArray[i].reset(new int[size2]);
所以,不是那么简洁的表达方式。我是否遗漏了什么,或者对于具有可变长度的多维数组,没有简单的普通 C++ 方法来获得快速分配?