對於2D矢量,我知道我可以去:三維矢量構造C++
vector<vector<T>> vec;
vec = vector<vector<T>> (boardSize, vector<T>(boardSize));
但是我怎麼做到這一點的三維矢量?
我試圖
vector<vector<vector<T>>> vec;
vec = vector<vector<vector<T>>> (boardSize, boardSize, vector<T>(boardSize));
,但它不會編譯。有任何想法嗎?
如果只有一個「矢量」,讓它的大小成爲所有維度的乘積是不是更容易?然後將它包裝在一個將多個索引轉換爲單個索引的類中?這比你想要做的要容易得多。或者只是使用Boost.MultiArray。 –
@NicolBolas爲什麼不容易使用3D矢量?我一直在使用沒有戲劇性的2D矢量。不爭論只是有興趣,我對此很新。 :) – Sam
因爲沒有「3D矢量」或「2D矢量」這樣的東西。它們只是一個載體,恰好包含另一個載體。這些對象分配的內存不是連續的。另外,您必須手動調整每個子矢量的大小。這只是一個很大的麻煩。 –