美文网首页
C++11 序列for循环语句

C++11 序列for循环语句

作者: 深红的眼眸 | 来源:发表于2017-04-14 17:56 被阅读0次

    本文根据众多互联网博客内容整理后形成,引用内容的版权归原始作者所有,仅限于学习研究使用,不得用于任何商业用途。

    C++11中引入了序列for循环以实现区间遍历的简化。这里所谓的区间可以是任一种能用迭代器遍历的区间,例如STL中由begin()和end()定义的序列。所有的标准容器,例如std::string、 初始化列表、数组,甚至是istream,只要定义了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++11 FAQ】序列for循环语句

    相关文章

      网友评论

          本文标题:C++11 序列for循环语句

          本文链接:https://www.haomeiwen.com/subject/gpcgattx.html