C++11 序列for循环语句

2017-04-14  本文已影响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循环语句

上一篇下一篇

猜你喜欢

热点阅读