从推力矢量访问结构中的数据

时间:2015-06-30 20:51:00

标签: c++ cuda thrust

看起来operator[]的{​​{1}}返回thrust::vector,无法用于访问结构内的数据。

想象一下我有

thrust::reference

struct Point{ int x,y } int main(){ thrust::device_vector<Point> myvec; // ... I fill in the vector ... (myvec[0]).x = 4; // This line fails return 0; } (myvec[0]).x = 4;

而失败

我也尝试过:

error: class "thrust::device_reference<Point>" has no member "x"

但是Point &p = myvec[0]; p.x = 4;

失败了

唯一有效的是

error: initial value of reference to non-const must be an lvalue

但它没有做我想要的......

如何修改Point p = myvec[0]; p.x = 4;

请注意,我正在处理更复杂的事情,而且这个例子可能不相关。

编辑:感谢您指出副本。 解决方案很奇怪,但绝对是唯一的出路。

0 个答案:

没有答案