【发布时间】:2014-05-20 18:03:46
【问题描述】:
假设我们有一个函数foo 来做一些事情
到*firsta和*lastb之间的所有元素:
foo(RandomAccessIterator1 firsta,RandomAccessIterator1 lasta){
for (RandomAccessIterator1 it=firsta;it!=lasta+1;it++){
//here stuff happens...
}
}
问题 a):有没有办法只跳过索引 firsta<i<lastb
将输入修改为foo --e.g.随机迭代器,
换句话说,不改变foo 本身,只改变它的输入?
--不幸的是我想跳过的索引不在边缘
(它们通常位于firsta 和lasta 之间)和foo
是一种复杂的分治算法,不适合
在原始数组的子集上调用迭代器
正在指向。
问题 b):如果可以进行 a),那么这样做的成本是多少?
常量还是取决于(lasta-firsta)?
【问题讨论】: