将函数应用于数组向量的元素
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]; );
【讨论】:
以上是关于将函数应用于数组向量的元素的主要内容,如果未能解决你的问题,请参考以下文章