gpt4 book ai didi

c++ - 通过另一个 vector 推力访问 vector 元素

转载 作者:行者123 更新时间:2023-11-30 02:37:25 25 4
gpt4 key购买 nike

Thrust我有三个设备 vector

device_vector<int> ID(N)
device_vector<float> F(M),Y(N)

通常在哪里 M<<N (但这应该无关紧要)。 ID 的所有值在 0...M-1 范围内.

我现在想分配 Y[i] = F[ID[i]]对于所有 i=0...N-1 .如果我正确理解 Thrust,我不能用 for_each 做到这一点和一些仿函数。有没有什么方法可以用 thrust::transform 来实现呢?或类似的东西?

最佳答案

您可以使用 thrust:gather 执行此操作,类似于:

device_vector<int> ID(N);
device_vector<float> F(M),Y(N);

thrust::gather(ID.begin(), ID.end(), F.begin(), Y.begin());

在调用中,ID 是用于收集F 中的值并将它们写入Y 的映射。

[标准免责声明:用浏览器编写,未经测试,使用风险自负]

关于c++ - 通过另一个 vector 推力访问 vector 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31605149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com