【发布时间】:2022-01-20 00:33:21
【问题描述】:
因此,在 c++ 20 中,我们获得了许多具有范围、跨度等的新特性。现在,如果我需要迭代一个容器,但只有第一个 n 元素,那么最合适的方法是什么,幕后有什么实际区别吗?还是返回到带有索引的常规 for 循环可能是一个更好的主意,因为这些示例的性能可能较差?
for (const auto &e: elements | std::ranges::views::take(n)) {
// do stuff
}
for (const auto &e: std::span(elements.begin(), n)) {
// do stuff
}
for (const auto &e: std::ranges::subrange(elements.begin(), elements.begin() + n)) {
// do stuff
}
【问题讨论】:
标签: c++ c++20 std-ranges