std::for_each过for环有什么好处吗?对我来说,std::for_each似乎只会阻碍代码的可读性。那么为什么一些编码标准推荐使用它呢?
std::for_each
for
C++11 (以前称为 C++0x)的好处是,这场令人厌烦的争论将得到解决。
我的意思是,没有一个心智正常的人想要迭代整个集合,仍然会使用它
for(auto it = collection.begin(); it != collection.end() ; ++it) { foo(*it); }
或这个
for_each(collection.begin(), collection.end(), [](Element& e) { foo(e); });
当 _基于范围的for循环_语法可用时:
for(Element& e : collection) { foo(e); }
这种语法在 Java 和 C# 中已经有一段时间了,实际上在我看到的每一个最近的 Java 或 C# 代码中,foreach循环都比经典循环多得多。for
foreach