reverse_iterator::iterator_type一种类型,此类型为 reverse_iterator 提供基础迭代器。C++ 复制 typedef RandomIterator iterator_type; 备注该类型是模板参数 Iterator 的同义词。示例请参阅 reverse_iterator::base,获取关于如何声明和使用 iterator_type 的示例。
[C++]浅谈reverse_iterator的base()函数 调用reverse_iterator的base成员函数可以产生"对应的"iterator,但这句话有些辞不达意。举个例子,看一下这段代码,我们首先把从数字1-5放进一个vector中,然后产生一个指向3的reverse_iterator,并且通过reverse_iterator的base初始化一个iterator: vector<int>v; v.reserve(5)...
● 要实现在一个reverse_iterator ri指出的位置上插入新元素,在ri.base()指向的位置插入就行了。对于 insert操作而言,ri和ri.base()是等价的,而且ri.base()真的是ri对应的iterator。 现在再来考虑删除元素的情况。回顾一下最初的vector(也就是在插入99之前)ri与i的关系: 如果你要删除ri指向的元素,你不能直接...
要实现在一个 reverse_iterator ri 指出的位置上插入新元素,在 ri.base() 指向的位置插入就行了。对于 insert 操作而言,ri 和 ri.base() 是等价的,而且 ri.base() 真的是 ri 真的是 ri 对应的iterator 1vector<int>::iterator i( ri.base() );// i和ri.base()一样 要实现在一个 reverse_iterator...
调用reverse_iterator的base成员函数可以产生“对应的”iterator,但这句话有些辞不达意。举个例子,看一下这段代码,我们首先把从数字1-5放进一个vector中,然后产生一个指向3的reverse_iterator,并且通过 reverse_iterator的base初始化一个iterator: vector<int>v; ...
std::make_reverse_iterator(it).base()==it;auto rbegin=std::make_reverse_iterator(end);auto rend=std::make_reverse_iterator(begin); 在你的替代设计中,不可能所有的人都能坚持下去。如果基础&*rit == &*rit.base()那么 必须使用偏移量构造 ...
调用reverse_iterator的base成员函数可以产生“对应的”iterator,但这句话有些辞不达意。举个例子,看一下这段代码,我们首先把从数字1-5放进一个vector中,然后产生一个指向3的reverse_iterator,并且通过 reverse_iterator的base初始化一个iterator: vector v; ...
底层迭代器指代(相对于 iterator_type 的)reverse_iterator 当前所指元素的下一个元素。即 &*(*this.base() - 1) == &*(*this)。 示例运行此代码 #include <iostream> #include <iterator> #include <vector> int main() { std::vector<int> v = {0, 1, 2, 3, 4, 5}; using RevIt = std:...
base 从其reverse_iterator还原基础迭代器。 运算符 展开表 operator* 返回reverse_iterator 解决的元素。 operator+ 向迭代器的偏移量并返回新 reverse_iterator 解决该插入的元素在新的偏移位置。 operator++ 增加reverse_iterator 为下一个元素。 operator+= 从reverse_iterator添加指定的偏移量。 运算符 从reverse...
<< endl; typedef reverse_iterator<vector<int>::iterator>::iterator_type it_vec_int_type; reverse_iterator<it_vec_int_type> rpos ( pos ); cout << "The reverse_iterator rpos points to: " << *rpos << "." << endl; bpos = rpos.base ( ); cout << "The iterator underlying rpos ...