比较从容器中分别获得的迭代器是否有效?

Tho*_*son 6 c++ stl

例如,这个表达式在语义上是否有效?

container.begin() == container.begin();
Run Code Online (Sandbox Code Playgroud)

Jam*_*lis 11

是的,只要迭代器都没有失效.

例如,以下内容无效:

std::deque<int> d;

std::deque<int> begin1 = d.begin();
d.push_front(42);                   // invalidates begin1!
std::deque<int> begin2 = d.begin();
assert(begin1 == begin2);           // wrong; you can't use begin1 anymore.
Run Code Online (Sandbox Code Playgroud)