例如,这个表达式在语义上是否有效?
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)