C++参考清楚地声明调用std::vector::erase(it)迭代器将使指向擦除元素和擦除元素之后的所有迭代器无效.http://en.cppreference.com/w/cpp/container/vector/erase
我确实理解为什么这些迭代器在erase调用后变得不可解除引用,但我很好奇为什么它们需要变得无效,实现细节需要什么呢?
例如,标准说std::vector必须使用连续存储的元素来实现,elements can be accessed not only through iterators, but also using offsets on regular pointers to elements因此这样的容器的迭代器可能实现为指针似乎是合乎逻辑的 - 但是指针如何变得无效?