gpt4 book ai didi

c++ - 使用 for_each 与 range-for 有什么好处?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:39 24 4
gpt4 key购买 nike

从历史上看,我知道最好使用标准算法(例如 for_each)而不是 for 循环,因为它们更具可读性。但我只是觉得在 c++11 中,常规的 for 循环比具有相应回调仿函数的众多标准算法要简洁得多。

我这样想有错吗?许多标准算法是否已过时?这些方法有哪些不同的好处?

最佳答案

根据您的判断。

由于 lambda 和更好的绑定(bind)表达式,许多算法在 C++11 中变得更容易使用,它们允许您以相对简洁的方式指定仿函数。然而,基于范围的 for 循环也是一个完全合法的选择。

如果您只需要循环体中的一两个语句,那么一定要使用基于范围的循环。如果您需要在对象集合上调用成员函数,可以使用 for_eachmem_fn。如果绑定(bind)表达式看起来足够清晰,请使用它。但无论您做什么,如果您发现自己将太多逻辑塞进一个地方,请考虑重构并为更小的工作组件提供可读的名称。

C++ 为您提供了许多工具,一种工具的存在并不意味着另一种工具无用。大型工具带,就像 C++ 一样,以有经验的用户为目标,经验会让您为正确的工作选择正确的工具。

关于c++ - 使用 for_each 与 range-for 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26932060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com