如何在c++ AMP中使用2d数组来声明array_view或数组对象

How to use a 2d array to declare an array_view or array object in c++ AMP

本文关键字:数组 声明 array view 对象 2d c++ AMP      更新时间:2023-10-16

我试图使用一个数组,如int myarray[2][3]来初始化array_view对象。我试过array_view<int, 2> a(2,3, myarray);,但这不起作用。我也想对向量做同样的事情。什么好主意吗?

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

编辑:

(固定大小的)vector不能直接用于初始化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());

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);

谢谢,