std::transform在指定的范围内应用于给定的操作,并将结果存储在指定的另一个范围内。要使用std::transform函数需要包含头文件。 std::transform有两个重载方法,一个是对应于一元操作,一个是对应于二元操作。
std::transform(first1, last1, first2, result, func);
对于二元操作,使用[first1, last1)范围内的每个元素作为第一个参数调用func, 并以first2开头的范围内的每个元素作为第二个参数调用func, 每次调用返回的值都存储在以result开头的范围内。给定的func将被连续调用last1-first1次。func可以是函数指针或函数对象或lambda表达式。
std::transform 一元操作std::transform(first1, last1, result, func);
对于一元操作,将func应用于[first1,last1)范围内的每个元素,并将每个操作返回的值存储在以result开头的范围内。给定的op将被连续调用last1-first1次。func可以是函数指针或函数对象或lambda表达式。
示例代码/*
std::transform用法
*/
#include
#include
#include
using namespace std;
int value_increase(int i){ return i + 5; }
/*
std::transform 二元操作
std::transform(first1, last1, first2, result, func);
对于二元操作,使用[first1, last1)范围内的每个元素作为第一个参数调用func,
并以first2开头的范围内的每个元素作为第二个参数调用func,
每次调用返回的值都存储在以result开头的范围内。
给定的func将被连续调用last1-first1次。func可以是函数指针或函数对象或lambda表达式。
*/
int main() {
vector vec1{1, 4, 2, 3, 5};
vector vec2{1, 2, 3, 4, 5};
// 将vec1和vec2的每个元素相加,并保存到vec2
std::transform(vec1.begin(), vec1.end(), vec2.begin(), vec2.begin(),
[](int v1, int v2) -> int { return v1 + v2; });
for (auto ele : vec2) {
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?