gpt4 book ai didi

c++ for_each 并行处理两个容器

转载 作者:太空宇宙 更新时间:2023-11-04 15:41:04 26 4
gpt4 key购买 nike

我想处理 2 个以某种方式相关的容器,并且我想处理它们之间的元素。

简单的例子:一个容器包含某种总和,另一个等长的容器包含必须从该总和中减去的数字。

std::vector<int> s = {20,56,7,34,234,23,54};
std::vector<int> m = {1,3,5,2,3,5,6};

for(int i=0; i<s.size();++i){
s[i] -= m[i];
}

是否有更优雅的方式来实现,例如使用 for_each?

最佳答案

如果你真的想为此使用标准算法,你可以使用转换:

std::transform(begin(s),end(s),begin(m),begin(s),yourfunc);

其中 yourfunc 从 s 和 m 中获取元素并将所需的修改返回到 s(或您选择的任何其他容器)中。

auto yourfunc = [](int ms, int mm){return ms-mm;};

关于c++ for_each 并行处理两个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22933023/

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