是否可以在C ++中动态地向数组或向量添加维度?一般人如何处理这个问题?另外,是否有一个STL容器允许实例化一个具有N维的数组(比如我是否有一个包含多维数据的成员的类,但我不知道在实例化之前的维数) 。也许是这样的:
vector<int> ndim_vector = {20 10 50};
some_container<double> c( ndim_vector );
答案 0 :(得分:1)
你可以写一个可以做类似事情的课程。例如,OpenCV library提供N维矩阵。但是,STL中没有这样的东西。您可以构建自己的类,可以从STL容器实现此行为。 Boost库项目还提供multidimensional array library。
答案 1 :(得分:0)
标准不包括该容器。但包括<valarray>
头文件及其关联的类和模板类。 valarray
模板类是一维的,但使用gslice
并不难模拟多维行为。动态添加需要更多的工作。
无论如何,所有这些功能都需要封装到你自己的类中......或者使用Ralh Tandetzky建议的替代方案之一。