std :: transform的功能版本

时间:2012-12-05 11:12:26

标签: c++

将函数应用于元素集合时,std::transform将输出作为第3个参数。是否有返回结果的版本,例如vec2 = map(func, vec1)

1 个答案:

答案 0 :(得分:3)

不,标准库中没有类似的东西。你可以自己写一个:

template<typename T, typename Func>
std::vector<T> transform(std::vector<T> const &input, Func func) {
    std::vector<T> result(input.size());
    std::transform(input.begin(), input.end(), result.begin(), func);
    return result;
}

更好的解决方案可能是使用transformed adaptor from Boost.Range,因为它不会分配额外的容器。