C++标准库---transform()

这篇博客介绍了C++标准库中的transform算法,包括其两种形式的详细说明和使用场景。第一种形式用于将源区间的元素转换并复制到目标区间,第二种形式则涉及两个源区间,并对它们的对应元素进行操作。transform算法具有线性复杂度,适用于元素的变换和组合,且在适当情况下可以更新原序列。
摘要由CSDN通过智能技术生成

transform

算法transform()提供以下两种能力:

1.第一形式有4个参数,把源区间的元素转换到目标区间。也就是说,复制和修改元素一气呵成;

2.第二形式有5个参数,将前两个源序列中的元素合并,并将结果写入目标区间。

注意:含有修改元素,仅仅只做复制元素,可以使用copy()。

第一种形式

transform(sourceBeg,sourceEnd,destBeg,op)

(1)针对源区间[sourceBeg,sourceEnd)中的每一个元素调用:op(elem) 并将结果写到以destBeg起始的目标区间内;

(2)返回目标区间内“最后一个被转换元素”的下一个位置,也就是第一个未被覆盖的元素位置;

(3)调用者必须确保目标区间有足够的空间,要不就得使用插入型迭代器;

(4)sourceBeg于destBeg可以相同,所以,和for_each()算法一样,你可以使用这个算法来变动某一序列内的元素;

(5)如果想以某值替换符合某一准则的元素,应使用replace()算法;

(6)复杂度:线性;


代码示例(第一种形式):

#include"fuzhu.h"

using namespace std;

int mai
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值