【发布时间】:2019-06-17 20:27:45
【问题描述】:
Python 的itertools 有一个islice(seq, start, stop, step) 过程,它接受一个序列并返回一个迭代器,该迭代器是start 和stop 之间序列值的每个stepth 值。
C++20 的 Ranges 库是否提供类似的功能,例如像slice 这样的函数,它接受一个随机访问迭代器start、一个标记stop 和一个步长值step,并返回一个随机访问迭代器,该迭代器对step 之间的每个stepth 值进行迭代start和stop?
如果没有,可以使用 Ranges 库提供的原语来实现这样的迭代器适配器吗?
(我知道如何手动实现这样的适配器,所以这不是问题。)
【问题讨论】:
-
range-v3 有
stride_view和span可以组合成相同的效果。我不知道 C++20 是否有所有的 range-v3。