【发布时间】:2015-08-08 10:39:05
【问题描述】:
在我的代码中,主要的数据结构是
std::vector<std::vector<T>> Worldlines ;
在我的一个子例程中,我删除元素并将元素(可能导致容器重新分配以具有更多容量)添加到其中一个组件(比如说Worldlines[i])。
如果我在向量Worldlines[i] 中有一些T,我将其位置保存为std::vector<T>::iterator 对象,如果重新分配Worldlines[i],它们通常可能会失效。
如果使用 j != i 指向属于 Worldlines[j] 的 T 的迭代器呢?它们是否保证仍然有效,或者其中一个向量的重新分配可能会导致其他向量的重新分配,因为它们被绑定在一个向量向量中?
谢谢大家。
【问题讨论】:
-
我编辑了这个问题以避免不同类型的迭代器之间的混淆。