将函数应用于数组向量的元素

Posted

技术标签:

【中文标题】将函数应用于数组向量的元素【英文标题】:Applying a function to elements of a vector of arrays 【发布时间】:2017-02-05 14:02:19 【问题描述】:

我有一个我编码成std::vector<std::array<double,2>> 的东西列表。这基本上是点 (x,y) 的列表。我想构建另一个列表,但现在是点 (x,y^2)。

我可以使用 for 循环来做到这一点,但是使用 STL 算法实现这一点的最佳方法是什么?我试图将std::for_each 与 lambdas 结合使用,但我还不能到达那里。

【问题讨论】:

你应该发布你没有工作的尝试这样做。否则答案是“使用 std::for_each” 【参考方案1】:

std::for_each 将函数应用于一系列元素,如果您想将函数应用于某个范围并将结果存储在另一个范围中,则应使用std::transform。例如

std::transform(src.begin(), src.end(), std::back_inserter(dest),
               [](const std::array<double,2>& arr)  return std::array<double,2>arr[0], arr[1] * arr[1]; );

【讨论】:

以上是关于将函数应用于数组向量的元素的主要内容,如果未能解决你的问题,请参考以下文章

将函数应用于 R 中列表元素的所有成对组合

R语言outer函数应用于两个数组实战

应用于数组的高阶函数

《R语言实战》自学笔记28-将函数应用于矩阵和数据框

如何根据不同 R 生态系统中的另一个向量重写代码,将函数应用于行子集?

如何将效果应用于 jQuery 数组中检索到的元素?