序列for循环语句

来源:互联网 发布:win10网络连接错误691 编辑:程序博客网 时间:2024/04/20 18:19

序列for循环语句

序列for循环语句允许重复遍历一组序列,而这组序列可以是任何可以重复遍历的序列,如由begin()和end()函数定义的STL序列。所有的标准容器都可用作这种序列,同时它也同样可以是std::string,初始化列表(list),数组,以及任何由begin()和end()函数定义的序列,例如输入流。这里是一个序列for循环语句的例子:

     void f(const vector& v)    {        for (auto x : v) cout << x << ‘n’;        for (auto& x : v) ++x;    // 使用引用,方便我们修改容器中的数据    }

可以这样理解这里的序列for循环语句,“对于v中的所有数据元素x”,循环由v.begin()开始,循环到v.end()结束。又如:

   for (const auto x : { 1,2,3,5,8,13,21,34 })      cout << x << ‘n’;

begin()函数(包括end()函数)可以是成员函数通过x.begin()方式调用,或者是独立函数通过begin(x)方式调用。

(译注:好像C#中早就有这种形式的for循环语句,用于遍历一个容器中的所有数据很方便,难道C++是从C#中借用过来的?)

或参见:

  • the C++ draft section 6.5.4 (note: changed not to use concepts)
  • [N2243==07-0103] Thorsten Ottosen:
    Wording for range-based for-loop (revision 2).
  • [N3257=11-0027 ] Jonathan Wakely and Bjarne Stroustrup: Range-based for statements and ADL (Option 5 was chosen).
0 0
原创粉丝点击