返回介绍

序列 for 循环语句

发布于 2025-02-26 23:19:57 字数 1272 浏览 0 评论 0 收藏 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#中早就有这种形式的 for 循环语句,用于遍历一个容器中的所有数据很方便,难道 C++是从 C#中借用过来的?)

或参见:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文