1

是否可以在 C++ 中为数组或向量动态添加维度?通常如何解决这个问题?另外,是否有一个 STL 容器可以让一个人用 N 维实例化一个数组(比如说,如果我有一个类,它的成员包含多维数据,但在类实例化之前我不知道维数) . 也许是这样的:

vector<int> ndim_vector = {20 10 50};
some_container<double> c( ndim_vector );
4

2 回答 2

1

您可以编写一个可以执行此类操作的类。例如,OpenCV 库提供 N 维矩阵。但是,STL 中没有这样的东西。不过,您可以构建自己的类,这些类可以从 STL 容器中实现这种行为。Boost 库项目还提供了一个多维数组库

于 2013-06-17T13:21:52.810 回答
0

该标准不包括该容器。但包括<valarray>头文件及其关联的类和模板类。valarray模板类是一维的,但使用gslice模拟多维行为并不难。动态添加将需要更多的工作。

无论如何,所有这些功能都需要封装到您自己的类中......或者使用 Ralh Tandetzky 建议的替代方案之一。

于 2013-06-17T14:00:41.253 回答