我正在尝试使用一个数组int myarray[2][3]
来初始化一个array_view
对象。我试过array_view<int, 2> a(2,3, myarray);
但是那不起作用。我也希望能够用向量做同样的事情。有任何想法吗?
问问题
1431 次
2 回答
3
尝试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());
于 2011-12-17T21:43:28.737 回答
3
Baltram 的方法是正确的。你可以更换
array_view<int, 2> a(2, 3, &my_composed_vector.front());
经过
array_view<int, 2> a(2, 3, my_composed_vector);
使它更简单。
这是一个更简单的方法:
int myarray[2][3];
int *p = &myarray[0][0];
array_view<int, 2> a(2, 3, p);
谢谢,
于 2011-12-19T23:03:31.967 回答