要实现在一个 reverse_iterator ri 指出的位置上插入新元素,在 ri.base() 指向的位置插入就行了。对于 insert 操作而言,ri 和 ri.base() 是等价的,而且 ri.base() 真的是 ri 真的是 ri 对应的iterator
1 vector<int>::iterator i( ri.base() ); // i和ri.base()一样
要实现在一个 reverse_iterator ri 指出的位置上删除元素,就应该删除 ri.base() 的前一个元素。对于删除操作而言,ri 和 ri.base()并不等价,而且 ri.base() 不是 ri 对应的 iterator
1 vector<int>::reverse_iterator ri = find( v.rbegin, v.rend(), 3 ); // ri 指向3 2 v.erase( (++ri).base() ); // 删除 ri 指向的元素