gpt4 book ai didi

C++ 列表迭代器 reverse_iterator

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:03:30 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why does a push_back on an std::list change a reverse iterator initialized with rbegin?

我得到一段代码如下:

#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 之后,如果我调用 push_front()it 的位置将不会改变.然而,在我定义了 reverse_iterator rit 之后,如果我调用 push_back()rit 的位置将会改变。

这应该被视为不一致吗?其中一个移动而另一个保持不变对我来说真的没有任何意义。

提前致谢。 :)

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com