比较两个指向不同列表的列表迭代器

时间:2014-03-21 18:50:42

标签: c++ list c++03

正如在SO上的其他questions中所指出的,来自不同容器的两个迭代器之间的相等比较是UB。

在我的情况下,我有两个列表迭代器,它们可能不是来自同一个容器:

std::list< int >::iterator a, b;

假设我确定它们都不是结束迭代器,我的问题是我是否被允许这样做:

&(*a) == &(*b)

1 个答案:

答案 0 :(得分:2)

当然,你可以做到这一点,因为你不是要对迭代器进行编程,而是对他们的再制作地址进行编写。

假设迭代器来自不同的容器,那么在格式良好的程序中这种比较是不可能的。