我正在浏览标准算法库,遇到一个示例,该示例以我以前从未见过的方式使用基于范围的 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实际是什么以及为什么这里需要它感到困惑?