C++ 预期的容器行为

C++ 预期的容器行为,c++,iterator,std,C++,Iterator,Std,我在C++中用迭代器构建容器,我想“模仿”STD容器行为,但是我不能确定迭代器发生什么,如果在创建和删除之间,引用变化的容器。 例如: 我有一个喜欢的列表,所以在迭代器中,我必须存储指向它所引用的链表的第一个元素的指针,但是假设我们有一段代码,比如 Iterator iter { linkedList.begin() }; linkedList.deleteFirstElement(); 现在迭代器中的指针指向一个不再存在的对象,因此如果我取消引用它,它将导致分段错误 >我的问题是:我是否要在

我在C++中用迭代器构建容器,我想“模仿”STD容器行为,但是我不能确定迭代器发生什么,如果在创建和删除之间,引用变化的容器。

例如: 我有一个喜欢的列表,所以在迭代器中,我必须存储指向它所引用的链表的第一个元素的指针,但是假设我们有一段代码,比如

Iterator iter { linkedList.begin() };
linkedList.deleteFirstElement();
现在迭代器中的指针指向一个不再存在的对象,因此如果我取消引用它,它将导致分段错误


>我的问题是:我是否要在链接列表的迭代器中创建一个副本,引用或只是证明它是未定义的行为?

,对于每个容器,C++标准库有许多迭代器失效规则,例如:代码> STD::List,例如,注释:“删除元素的引用和迭代器失效”。

哦,所以我应该考虑迭代器失效,所以我不必关心容器的变化,谢谢(你会考虑这个答案,所以我可以关闭这个问题吗?)