for_each() 速度快 不灵活 没有返回值
transform() 速度慢 非常灵活 有返回值
for_each() 用的函数,传的参数必须是引用
transform()传的参数不是引用
结论:所以for_each比transform快
而transform灵活,它可以经过op运算,在复制给自己。它还可以对不同的容器进行操作,在传给它自己。
例如:transform(b.begin(),b.begin(),b.end(),square);
for_each(a.begin(),a.end(),square); 其中 square函数除了用引用外,还没有返回值,而transform需要有返回值