使用for_每个循环的优点是什么?[英] What's the advantage of using for_each loop?

问题描述

使用for_each比使用普通迭代有什么优势
for循环?

是否有任何 ''tweak'' 使用流对象作为 ''Function'' 参数
for_each 循环.好像copy函数也可以.

推荐答案

使用for_each比普通迭代使用有什么好处
循环?
一般来说,for_each 应该比 for-loop 更简洁.
for_each 最酷的地方在于:

1)可以通过引用传递函数对象
2)你可以对函数对象应用副作用
3)可以使用for_each()算法的返回值
是否有任何 ''tweak'' 使用流对象作为 ''Function'' 参数
for_each 循环.似乎复制功能可以做到这一点.
boost 库怎么样?
http://www.boost.org/

使用 std::copy 您可以执行以下操作:

复制(a.begin(),a.end(),ostream_iterator<字符串>(cout,"");
并且使用 boost::lambda 你可以做同样的事情:

for_each(a.begin(), a.end(), std::cout << _1 << '' '');


Sarath <CS*****@gmail.com 写道:
使用for_each比使用普通迭代有什么优势
循环?
我开始认为这应该是一个常见问题解答.:-)

标准库算法的一个关键好处是它们可以节省
程序员编写显式循环.循环可能很乏味并且
容易出错.for_each() 算法是
中最简单的算法感觉它除了消除一个显式循环之外什么都不做……一个
for_each() 的常见用途是从 a
的元素中提取信息顺序.-- Stroustrup
是否有任何 ''tweak'' 使用流对象作为 ''Function'' 参数
for_each 循环.似乎复制功能可以做到这一点.
显然,如果更专业的算法有效,那么请改用它.

5 月 30 日上午 10:33,v.r.mari...@gmail.com 写道:
使用for_each比使用普通迭代有什么优势
循环?

一般来说,for_each 应该比 for-loop 更简洁.
for_each 最酷的地方在于:

1)可以通过引用传递函数对象
2)你可以对函数对象应用副作用
3)可以使用for_each()算法的返回值
是否有任何 ''tweak'' 使用流对象作为 ''Function'' 参数
for_each 循环.似乎复制功能可以做到这一点.

boost 库怎么样?http://www.boost.org/

使用 std::copy 您可以执行以下操作:

复制(a.begin(), a.end(), ostream_iterator(cout, " ");

并且使用 boost::lambda 你可以做同样的事情:

for_each(a.begin(), a.end(), std::cout << _1 << '' '');
是的,我使用 boost::lambda 来做同样的事情.但这是不可能的
使用 ISO C++ STL 实现


本文地址:https://www.itbaoku.cn/post/1050518.html