gpt4 book ai didi

c++ - 基于范围的切片循环?

转载 作者:太空狗 更新时间:2023-10-29 20:51:20 24 4
gpt4 key购买 nike

有什么方法可以对 vector 的一部分进行基于范围的 for 循环吗?例如,我想遍历 vector 的前 5 个元素:

for(auto& elem : my_vector[0:5]) {  // Syntax obviously doesn't exist
do_stuff(elem);
}

我可以按照 How to make my custom type to work with "range-based for loops"? 中的规定编写自己的容器,但我希望在 boost 或一些相关库中有更简单的方法。

C++20 似乎包括“范围”,但在 20 之前有类似的东西吗?

最佳答案

事实上的标准(库)是 range-v3 — 这是它的样子:

for (auto& elem : ranges::view::slice(my_vector, 0, 5)) { ... }
// or
for (auto& elem : ranges::view::take(my_vector, 5)) { ... }

如果您需要 C++03 中的范围支持,Boost.Range是一个替代方案,尽管相比之下它的实现相当简陋。

关于c++ - 基于范围的切片循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50545675/

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