我计划在 C++ 中实现一个事物列表,其中元素可能会被乱序删除。我不希望我需要任何类型的随机访问(我只需要定期扫描列表),并且项目的顺序也不重要。
所以我想std::list<Thing*> with this->position = insert(lst.end(), thing)
应该做的伎俩。我希望 Thing 类记住每个实例的位置,以便我以后可以lst.erase(this->position)
在恒定时间内轻松完成。
但是,我对 C++ STL 容器还是有点陌生,我不知道将迭代器保留这么长时间是否安全。特别是考虑到在插入的事物之前和之后会删除其他元素,然后它就消失了。