Python的`itertools`有一个名为`islice(seq, start, stop, step)`的过程,它接收一个序列并返回一个迭代器,该迭代器包含在`start`和`stop`之间每个第`step`个值的序列值。
C++20的Ranges库提供类似的功能吗?例如,是否存在像`slice`这样的函数,它接收一个随机访问迭代器`start`,一个结束标记`stop`和一个步长值`step`,并返回一个随机访问迭代器,该迭代器在`start`和`stop`之间迭代每个第`step`个值?
如果没有,是否可以使用Ranges库提供的原语来实现这样的迭代器适配器呢?
(我知道如何手动实现这样的适配器,所以这不是问题。)
C++20的Ranges库提供类似的功能吗?例如,是否存在像`slice`这样的函数,它接收一个随机访问迭代器`start`,一个结束标记`stop`和一个步长值`step`,并返回一个随机访问迭代器,该迭代器在`start`和`stop`之间迭代每个第`step`个值?
如果没有,是否可以使用Ranges库提供的原语来实现这样的迭代器适配器呢?
(我知道如何手动实现这样的适配器,所以这不是问题。)
stride_view
和span
,可以结合使用以达到相同的效果。我不知道C++20是否具备ranges-v3的所有功能。 - eerorika