2011-12-17 60 views

回答

2

嘗試array_view<int, 2> a(2, 3, *myarray);

編輯:

的(固定大小)向量的向量不能直接用來初始化一個的array_view對象。

但是你可以做這樣的事情:

vector< vector<int> > my_multi_vector; // Fill my_multi_vector with data 
vector<int> my_composed_vector; 
for(int i = 0, ie = my_multi_vector.size(); i != ie; ++i) 
    my_composed_vector.insert(my_composed_vector.end(), my_multi_vector[i].begin(), my_multi_vector[i].end()); 
array_view<int, 2> a(2, 3, &my_composed_vector.front()); 
+0

謝謝工程。我將如何做這些向量? – drowdemon 2011-12-17 22:08:28

+0

你想用一個向量來構造一個int數組或一個array_view的向量嗎? – Baltram 2011-12-17 22:11:10

+0

array_view向量載體 – drowdemon 2011-12-17 23:11:08

3

Baltram的方法是正確的。 你可以通過

array_view<int, 2> a(2, 3, my_composed_vector); 

更換

array_view<int, 2> a(2, 3, &my_composed_vector.front()); 

,使其更簡單。

這裏有一個更簡單的方法:

int myarray[2][3]; 
int *p = &myarray[0][0]; 
array_view<int, 2> a(2, 3, p); 

感謝,