小编典典

std::for_each 优于 for 循环的优点

all

std::for_eachfor环有什么好处吗?对我来说,std::for_each似乎只会阻碍代码的可读性。那么为什么一些编码标准推荐使用它呢?


阅读 93

收藏
2022-07-27

共1个答案

小编典典

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

2022-07-27