STL之for_each和transform对比

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需要有返回值


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容