我正在尝试将我的quicksort实现转换为可以与向量之外的其他容器一起使用的模板。
最初我使用索引来查找中间索引,例如(first + last) / 2
。如何找到两个迭代器的中间部分?
答案 0 :(得分:15)
答案 1 :(得分:5)
答案 2 :(得分:1)
这样的事情怎么样?
bool isMovingFirst = true;
while(first != last) {
if(isMovingFirst) {
++first;
} else {
--last;
}
isMovingFirst = !isMovingFirst;
}
答案 3 :(得分:0)
要查找中间迭代器,您应该使用:
first + (last - first) / 2