質問

As pointed out in other questions here on SO, equality comparison between two iterators from different containers is UB.

In my case I have two list iterators, which might not be from the same container:

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

Suppose that I know for sure that none of them is an end iterator, my question is if I am allowed to do:

&(*a) == &(*b)
役に立ちましたか?

解決

Sure, you can do that, as you're not comapring the iterators but the addresses of their referands.

Assuming iterators are from different containers, this comparison cannot ever be true in a well-formed program, though.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top