如何在添加向量时保持迭代器可解除引用?

1 c++ iterator vector push-back

假设我有这段代码:

std::vector<Object*> objects;
std::vector<Object*>::iterator iter;
for (iter = objects.begin(); iter != objects.end(); iter++) {
    if (condition)
        objects.push_back(new Object());
}
Run Code Online (Sandbox Code Playgroud)

但是,当发生push_back时,iter变得不可引用.如果不重置iter,我该如何保持其可解除引用?如果我必须重置它,是否有一个简单的方法来做到这一点,它回到以前的地方?

Dar*_*con 5

我建议您只需通过索引访问它.这完全消除了这个问题.