list<int> foo;
list<int> foo2;
list<int>::iterator foo_end = foo.end();
list<int>::iterator foo2_end = foo2.end();
for (list<int>::iterator it = foo.begin(); it != foo2_end; ++foo) <- notice != comparison here
{
...
这个允许吗?它能正常工作吗。
我倾向于认为这取决于实现,有人知道标准是否对此有规定吗?
std::list
的相同方法。重点是,比较来自不同容器的迭代器是未定义行为,但这并不意味着它会导致 segfault。 - David Rodríguez - dribeas