一、
transform()算法有两种形式:
1、transform(b1,e1, b2, op)
例:
transform(ivec.begin(), ivec.end(),ivec.begin(), negate<int>());
transform(ivec.begin(),ivec.end(),back_inserter(ilist),bind2nd(multiplies<int>(),10));
transform(ilist.begin(), ilist.end(),ostream_iterator<int>(cout, " "), negate<int>());
2、transform(b1,e1, b2, b3, op)//1和2结合操作OP复制给3
transform(ivec.begin(), ivec.end(),ivec.begin(),ivec.begin(),multiplies<int>());
transform(ivec.begin(), ivec.end(),ivec.rbegin(),back_inserter(ilist),plus<int>());
transform(ivec.begin(), ivec.end(),ilist.begin(),ostream_iterator<int>(cout, " "),minus<int>());
注意
1.如果目标与源相同,transform()就和for_each()一样。
2.如果想以某值替换符合规则的元素,应使用replace()算法。