我得到一段代码如下:
#include <iostream>
#include <list>
int main(){
std::list<int> l;
l.push_back(1);
l.push_back(2);
std::list<int>::iterator it = l.begin();
std::cout << *it << std::endl; // 1
l.push_front(0);
std::cout << *it << std::endl; // 1
std::list<int>::reverse_iterator rit = l.rbegin();
std::cout << *rit << std::endl; // 2
l.push_back(3);
std::cout << *rit << std::endl; // 3
}
输出:
1
1
2
3
看起来在我定义了前向迭代器之后it
,如果我调用WILL NOTpush_front()
的位置。it
但是,在我定义 reverse_iterator 之后rit
,如果我调用push_back()
,rit
WILL 的位置会改变。
这应该被视为不一致吗?对我来说,其中一个移动而另一个保持不变对我来说真的没有任何意义。
提前致谢。:)