2016-07-13 81 views
-1

Extracting and storing all 6x6 postitions from multiple resampled 6x6 matrices in an array in R矢量< vector<int>>與6×6尺寸的實施

我得到了我的答案從這裏開始。 How to create a 2D vector where in like 2D array

+0

你有沒有試過這個? – SirGuy

+0

是的,你可以(https://ideone.com/Pb9KoE),但是宣佈一維向量可能會更好:'vector arr(36);'並且訪問它的元素來計算正確的索引:'arr [i * 6 + j]'而不是'arr [i] [j]'。 –

+0

'@RadouaneROUFID'謝謝..雖然我不明白'多維向量',所以請你提供一個更好的方法來清除我所有的疑惑。 – CLIX159

回答

1

您有兩種選擇。向量或單個向量的向量(請參閱@Bob __的評論)。

向量向量的優點是C++的善良(迭代器邊界檢查等)。缺點是建設/複製成本較高。 rows+1載體必須構建(或複製)。

行* cols大小的單個向量的好處是,您只需要單個向量構造(或在需要時複製)。 (另一個性能優勢是數據的緩存局部性。)

下面介紹如何保留[row] [col]語法。

const int rows = 6; 
const int cols = 6; 
vector<int> x(rows*cols); 

//enable using [row][col] syntax 
auto a_int = reinterpret_cast<int (*)[rows]>(x.data()); 
// cout << a_int[row][col] << '\n'; 
+0

[鏈接](http://stackoverflow.com/questions/823562/multi-dimensional-vector)_answer的這個問題是在這個鏈接... – CLIX159