我希望構建一個3D結構,它將由一個具有i = 1..N個網站的數組組成,在每個網站中都有一個2D矢量,該向量有一個有限的dim k = 1 ... L,並且在模擬過程中發生變化,從M = 0開始,使用push_back命令更新L元素。製作一個具有兩個固定長度和一個可以變化的3D矢量
我已經添加了一個解釋結構的圖,該如何寫這個東西,請注意,重要的是我可以通過索引來訪問這個結構,比如struct [i] [j] [k] 。
注意:這個結構存儲了N個實現的模擬數據,每個實現中有M個時間步長可以不同(在運行期間發生這種情況),並且在每個時間步中有一個L個點的點陣是更新。
array <vector <double>, N> Array;
array <array <vector <double>, N>, L> Brray;
for (int i=0; i<N; i++)
{
// calculate cal1 for 0'th index
Array[i].push_back(i) = cal1;
j=1;
while (j<M)
{
// calculate cal1
Array[i].push_back(Array[i][j-1]+cal1);
for (int k=0; k<L; j++)
{
// calculate cal2
Brray[i][j][k] = cal2; // this is the line I have a problem
}
//perform cal3 that decides whether there will be another iteration
if (cal3==1)
{
j++;
}
}
}
困惑於爲什麼'struct [i] [j] [k]'很重要。 'struct(i,j,k)'不會一樣好嗎? 'struct [i] [j] [k]'允許有人做像'struct [i] [j] .clear();' – user4581301
這樣的愚蠢東西'我認爲'Brray [i] [j] .push_back(cal2) '是你在做什麼。 – user4581301
或者因爲你有L,'Brray [i] [j] .resize(L);'right'上面的(int k = 0; k
user4581301