用于获得范围的第n个元素的Boost.Range算法
||
有没有一种方法可以使用Boost.Range获取范围的第n个元素? (我不是在讨论“ 0”算法,该算法返回如果对范围进行排序将位于第n个位置的元素。我只是希望根据该范围内元素的当前顺序来选择第n个元素)。
我希望此函数在正向访问范围和随机访问范围上都可以工作(在正向访问范围内为线性时间,在随机访问范围内为恒定时间),如果range少于fewer2ѭ个元素。
我知道可以通过将范围的
begin()
乘以n
来实现std::advance
,但是我正在寻找一种不会降到迭代器级别的基于范围的解决方案。
编辑:实际上,这不能用std::advance
完成,因为std::advance
不会检查您是否超出范围的末端。
没有找到相关结果
已邀请:
2 个回复
稀瓣囊
目浆搽