过滤的const_iterator运算符++(int)

时间:2013-11-25 23:53:03

标签: c++ iterator operators

我想问一下这是否是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);
}

指针 - 指向当前元素的指针,指向结束的指针和滤波器 - 滤波器函数

1 个答案:

答案 0 :(得分:2)

无论你是否到达目的地,都应该返回previous

在预增量方面实现这一点可能是有意义的:

const_iterator previous(*this);
++(*this);
return previous;