使用vector的c++ 3D数组声明
C++ 3D array declaration using vector
我有一些c++代码,其中我使用以下方法使用"vector"声明2D数组:
std::vector<std::vector<double>> Array2D(X, std::vector<double>Y);
,其中X和Y是数组的维数。
这对我需要达到的效果很好。然而,我想看看使用相同的方法3D, XYZ数组。我假设我以:
开头 std::vector<std::vector<std::vector<double>>>
但我如何声明尺寸,即Array3D(X, ?????)
有fill vector构造函数,它构造一个有n个元素的容器,每个元素是value的一个副本。
std::vector<std::vector<std::vector<double>>> Array3D(X, std::vector<std::vector<double>>(Y, std::vector<double>(Z)));
将创建X × Y × Z向量。对于这种类型,您可能希望使用typedef
。
你可以这样声明
std::vector<std::vector<std::vector<double> > > Array3D(X, std::vector<std::vector<double> >(Y, std::vector<double>(Z)));
其中X, Y, Z为三维向量的维数
NB
最好不要使用vsoftco提到的3D矢量
不要使用这样的嵌套向量来创建3D矩阵。它们很慢,因为内存不再保证是连续的,并且会出现缓存丢失。最好使用平面矢量,从3D映射到1D,反之亦然。
相关文章:
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 为什么从函数返回数组时需要将数组声明为静态数组.(C++)
- 在 c++ 中直接访问的内联数组声明
- 由于 2D 数组声明,C++ 14 中的运行时错误
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 来自函数参数的 C++ 静态数组声明
- C++ 中的动态数组声明
- C++数组声明
- 数组声明中的错误:表达式必须具有常量值
- 程序随数组声明崩溃
- 运行时和编译时的数组声明
- C++数组声明和初始化
- 带有常量表达式的数组声明
- C ,数组声明,模板,链接器错误
- 如何用'n'维数组声明 std::vector?
- 数组声明上的编译器错误
- 这是什么数组声明
- 头文件类中的数组声明
- 节点数组声明
- 在静态数组声明中使用了两次C++常量