C++ std::transform的函数版本

C++ std::transform的函数版本,c++,C++,将函数应用于元素集合时,std::transform将输出作为第三个参数。是否有返回结果的版本,类似于vec2=map(func,vec1)?否,标准库中没有类似的版本。你可以自己写一个: template<typename T, typename Func> std::vector<T> transform(std::vector<T> const &input, Func func) { std::vector<T> resul

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

否,标准库中没有类似的版本。你可以自己写一个:

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;
}
模板
std::vector transform(std::vector const&input,Func-Func){
std::向量结果(input.size());
std::transform(input.begin()、input.end()、result.begin()、func);
返回结果;
}

更好的解决方案可能是使用,因为它不分配额外的容器。

该函数如何知道返回什么?最接近的可能是
变换迭代器
,请参见。