小编Har*_*023的帖子

在 std::make_heap 示例中的以下基于范围的 for 循环中,自动“t{1U}”有何作用?

我正在浏览标准算法库,遇到一个示例,该示例以我以前从未见过的方式使用基于范围的 for 循环: https: //en.cppreference.com/w/cpp/algorithm/is_heap

在给出的示例中,他们使用基于范围的 for 循环来迭代整数向量:

for (auto t{1U}; auto i : v)
    std::cout << i << (std::has_single_bit(++t) ? " | " : " ");
Run Code Online (Sandbox Code Playgroud)

我熟悉最常用的基于范围的 for 循环。例如

for (const auto& elem : vector)
{
    // do something with elem
}
Run Code Online (Sandbox Code Playgroud)

然而,我很困惑auto t{1U},我以前从未见过它,想知道它做了什么?

看起来它可能是一个临时范围表达式: https://en.cppreference.com/w/cpp/language/range-for 但我仍然对t实际是什么以及为什么这里需要它感到困惑?

c++ c++20 range-based-loop

3
推荐指数
1
解决办法
91
查看次数

标签 统计

c++ ×1

c++20 ×1

range-based-loop ×1