c++中的for_each如何跳出循环?

如果用for来循环,可在某一条件下用break终止跳出循环。
那用for_each呢?如何跳出这个循环?

阅读 7.6k
1 个回答
template<class InputIterator, class Function>
  Function for_each(InputIterator first, InputIterator last, Function fn)
{
  while (first!=last) {
    fn (*first);
    ++first;
  }
  return fn;      // or, since C++11: return move(fn);
}

大概看下它的实现代码,参数Function fn是一个函数。for_each,它的初衷就是把这段区间都执行完,否则你就用for代替for_each。所以这个问题不去想也罢。

如果偏要退出,那只能在参数fn里加点异常什么的了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题