我想知道是否有一種聰明的方式將矢量中的信息呈現爲一維數組。例如: 讓我們創建5X3 INT元件矢量到1D數組的矢量
vector< vector<int>> iVector;
ivector.resize(5);
for(i = 0; i < 5; i++){
iVector[i].resize(3);
}
但現在我想這種結構的載體的一個矢量被轉換成一維數組:
int* myArray = new int[5*3];
所以,我可以訪問哪些我希望每個元件如下:
for (i =0;i < 5; i++)
for(j =0; j< 3; j++)
myArray[i*3+j] = ...
我知道我可以只載體複製到由元件陣列元件,但我想知道如果存在直接處理的方法矢量數組轉換。我也知道這個矢量可以用iVector[i][j]
來表示,但不幸的是它需要是一個數組,因爲它將被髮送到GPU,而GPU不理解矢量。
這是不是你的問題的答案,但你有沒有嘗試使用一個矢量而不是矢量矢量?您可以安排模擬2D陣列的訪問。以這種方式,將矢量複製到數組很簡單 – undefined
2D訪問有什麼問題:'iVector [i] [j]'? – PiotrNycz
@PiotrNycz:沒有什麼不對,但它不可能用於GPU設備 – Manolete