具体来说,我有一个当前使用向量和 push_back 的类。我要跟踪的向量中有一个元素。推回向量可能会使迭代器无效,所以我保留它的索引。使用索引再次找到迭代器很便宜。我无法保留向量,因为我不知道将插入多少项目。
我考虑过将数据结构作为模板参数,也许可以使用 list 代替。在这种情况下,从索引中找到一个迭代器并不是一个简单的操作。由于推回列表不会使现有元素的迭代器无效,因此我可以只存储此迭代器。
但是我如何编写一个可以轻松处理这两种情况的通用类呢?
如果我可以确定 push_back 是否会使迭代器无效,我可以存储迭代器并在每次 push_back 之后通过存储操作前从开始的距离来更新它。