我有一些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