我有一些C++代码,其中我声明使用“载体”具有以下方法2D阵列C++ 3D阵列声明。使用矢量
这对我需要实现的功能非常有用。 但是我想看看使用3D,XYZ数组的相同方法。 我想我开始:
std::vector<std::vector<std::vector<double>>>
但我如何申报的尺寸,即Array3D(X,?????)
我有一些C++代码,其中我声明使用“载体”具有以下方法2D阵列C++ 3D阵列声明。使用矢量
这对我需要实现的功能非常有用。 但是我想看看使用3D,XYZ数组的相同方法。 我想我开始:
std::vector<std::vector<std::vector<double>>>
但我如何申报的尺寸,即Array3D(X,?????)
有填充矢量构造器,它构造具有n个元素的容器,并且每个元件是设置的值的副本。
std::vector<std::vector<std::vector<double>>> Array3D(X, std::vector<std::vector<double>>(Y, std::vector<double>(Z)));
将通过Z向量创建X由Y构成。您可能希望使用typedef
这种类型。
图例。发现。那正是我所追求的。干杯 – Fitzy
你可以声明像
std::vector<std::vector<std::vector<double> > > Array3D(X, std::vector<std::vector<double> >(Y, std::vector<double>(Z)));
其中X ,Y,Z是3D矢量的维数。
NB
它最好不要使用3D矢量作为由vsoftco
提到不使用这种嵌套矢量创建3D矩阵。它们很慢,因为内存不再保证连续,并且会导致缓存未命中。更好地使用平面矢量和从3D到1D的映射,反之亦然。
请介意发布[MCVE]。 –
请勿使用此类嵌套向量来创建3D矩阵。它们很慢,因为内存不再保证连续,并且会导致缓存未命中。更好地使用平面矢量和从3D到1D的映射,反之亦然。 – vsoftco