gpt4 book ai didi

c++ - 什么是 "for (x : y)"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:45 25 4
gpt4 key购买 nike

所以我在互联网上四处寻找关于线程的信息,然后我来到了一个关于线程的博客/教程,但让我感到困惑的是他使用的这条线

for (auto& thread : threads)  

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

最佳答案

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

语法是这样的:for (decl x : r) {/* body */},其中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 */
}
}

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

关于c++ - 什么是 "for (x : y)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24946027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com