increment/dereference操作符在迭代器的实现上占有非常重要的地位,因为任何一个迭代器都必须实现出前进(increment,operator++)和取值(dereference,operator*)功能,前者还分为前置式(prefix)和后置式(Postfix)两种。有写迭代器具备双向移动功能,那么就必须再提供decrement操作符(也分前置式和后置式),下面是一个例子:
#includeusing namespace std;class INT{ friend ostream& operator<<(ostream& os,const INT& i);public: INT(int i):m_i(i){} INT& operator++() { ++(this->m_i); return *this; } const INT operator++(int) { INT temp=*this; ++(*this); return temp; } INT& operator--() { --(this->m_i); return *this; } const INT operator--(int) { INT temp=*this; --(*this); return temp; } int& operator*() const { return (int&)m_i; }private: int m_i;};ostream& operator<<(ostream& os,const INT &i){ os<<'['< <<']'; return os;}int main(){ INT I(5); cout<
运行结果: