Pyp*_*ros 11 c++ iterator stl object-lifetime
我打算在C++中实现一个Things列表,其中的元素可能会被无序删除.我不希望我需要任何类型的随机访问(我只需要定期扫描列表),项目的顺序也不重要.
所以我想std::list<Thing*> with this->position = insert(lst.end(), thing)应该做的伎俩.我希望Thing类能够记住每个实例的位置,以便以后可以轻松地完成lst.erase(this->position).
但是,我对C++ STL容器仍然有点新意,我不知道将迭代器保持这么长时间是否安全.特别是,考虑到在插入Thing之前和之后将删除其他元素.
aJ.*_*aJ. 13
在列表中,所有迭代器在插入期间保持有效,并且只有擦除元素的迭代器在擦除期间无效.
在你的情况下,即使在插入Thing*之前和之后删除了其他元素,保持迭代器也应该没问题.
编辑:
vector和deque的其他细节:
矢量:
deque: