我想问一下这是否是const迭代器operator ++(int)的正确实现?
const_iterator operator++(int) {
const_iterator previous(pointer,end,filter);
while(pointer!=end_){
pointer++;
if(filter(*pointer)) return previous;
}
return const_iterator(end,end,filter);
}
指针 - 指向当前元素的指针,指向结束的指针和滤波器 - 滤波器函数
答案 0 :(得分:2)
无论你是否到达目的地,都应该返回previous
。
在预增量方面实现这一点可能是有意义的:
const_iterator previous(*this);
++(*this);
return previous;