C++ STL 算法:transform

一、

transform()算法有两种形式:

1、transform(b1,e1, b2, op)

C++ STL 算法:transform_第1张图片

例:

transform(ivec.begin(), ivec.end(),ivec.begin(), negate());

transform(ivec.begin(),ivec.end(),back_inserter(ilist),bind2nd(multiplies(),10));

transform(ilist.begin(), ilist.end(),ostream_iterator(cout, " "), negate());

2、transform(b1,e1, b2, b3, op)//1和2结合操作OP复制给3

C++ STL 算法:transform_第2张图片

transform(ivec.begin(), ivec.end(),ivec.begin(),ivec.begin(),multiplies());

transform(ivec.begin(), ivec.end(),ivec.rbegin(),back_inserter(ilist),plus());

transform(ivec.begin(), ivec.end(),ilist.begin(),ostream_iterator(cout, " "),minus());

二、

注意

1.如果目标与源相同,transform()就和for_each()一样。

2.如果想以某值替换符合规则的元素,应使用replace()算法。

你可能感兴趣的:(1.,C++,Primer,学习笔记)