什么是“对于(x:y)”?

2023-12-11

所以我在互联网上查找有关线程的内容,然后我找到了有关线程的博客/教程,但令我困惑的是他使用的这条线

for (auto& thread : threads)  

不太确定那是做什么的
这是我正在谈论的博客的链接LINK
感谢为我回答这个问题的人
PS你能给我一个参考,这样我就可以了解它的作用和其他相关的东西,我在搜索时似乎是盲目的


C++11引入了一种新的迭代语句,即所谓的基于范围的for loop。它与普通的不同for循环,因为它只允许您访问范围的成员,而不要求您显式命名范围本身,也不使用代理迭代器对象。具体来说,您不应该在迭代期间改变范围,因此这个新循环记录了“查看每个范围元素”的意图,而不是对范围本身执行任何复杂的操作。

语法是这样的:for (decl x : r) { /* body */ }, where decl代表一些声明和r是任意表达式。这在功能上基本上等同于以下传统循环:

{
    auto && __r = r;

    using std::begin;
    using std::end;

    for (auto __it = begin(__r), __e = end(__r); __it != __e; ++__it)
    {
        decl x = *it;
        /* body */
    }
}

作为一种特殊情况,数组和花括号列表也是本机支持的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是“对于(x:y)”? 的相关文章

随机推荐