【发布时间】:2010-10-20 01:05:05
【问题描述】:
我计划在 C++ 中实现一个事物列表,其中元素可能会被乱序删除。我不希望我需要任何类型的随机访问(我只需要定期扫描列表),并且项目的顺序也不重要。
所以我认为 std::list<Thing*> with this->position = insert(lst.end(), thing) 应该可以解决问题。我希望 Thing 类记住每个实例的位置,以便以后可以在恒定时间内轻松地执行 lst.erase(this->position)。
但是,我对 C++ STL 容器还是有点陌生,我不知道将迭代器保留这么长时间是否安全。特别是考虑到在插入的 Thing 消失之前和之后会有其他元素被删除。
【问题讨论】:
标签: c++ stl iterator object-lifetime