如何在c++ AMP中使用2d数组来声明array_view或数组对象
How to use a 2d array to declare an array_view or array object in c++ AMP
我试图使用一个数组,如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);
谢谢,
相关文章:
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 为什么从函数返回数组时需要将数组声明为静态数组.(C++)
- 在 c++ 中直接访问的内联数组声明
- 由于 2D 数组声明,C++ 14 中的运行时错误
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 来自函数参数的 C++ 静态数组声明
- C++ 中的动态数组声明
- C++数组声明
- 数组声明中的错误:表达式必须具有常量值
- 程序随数组声明崩溃
- 运行时和编译时的数组声明
- C++数组声明和初始化
- 带有常量表达式的数组声明
- C ,数组声明,模板,链接器错误
- 如何用'n'维数组声明 std::vector?
- 数组声明上的编译器错误
- 这是什么数组声明
- 头文件类中的数组声明
- 节点数组声明
- 在静态数组声明中使用了两次C++常量