У меня есть два итератора в контейнере, один константный и один неконстантный. Есть ли проблема со сравнением их, чтобы увидеть, относятся ли они оба к одному и тому же объекту в контейнере? Это общий вопрос об итераторе С++ 11:
Можно ли законно сравнивать константный и неконстантный итератор, чтобы увидеть, ссылаются ли они оба на один и тот же объект, независимо от типа контейнера (т. (), но один константный, а другой нет)?
Например, рассмотрим следующий код:
some_c++11_container container;
// Populate container
...
some_c++11_container::iterator iObject1=container.begin();
some_c++11_container::const_iterator ciObject2=container.cbegin();
// Some operations that move iObject1 and ciObject2 around the container
...
if (ciObject2==iObject1) // Is this comparison allowed by the C++11 standard?
...; //Perform some action contingent on the equality of the two iterators