У меня есть два итератора в контейнер, один const и один неконстантный. Есть ли проблема с их сопоставлением, чтобы убедиться, что оба они относятся к одному и тому же объекту в контейнере? Это общий C++ 11 итератора вопрос:const для сравнения не-const итераторов, являются ли они действительными
Может константный и Неконстантный итератор правомерно сравнить, чтобы увидеть, если они оба относятся к одному объекту, независимо от типа контейнера (то есть, они оба являются итераторами, которые гарантированно передают объектам в одном контейнере или конце контейнера(), но один из них - const, а другой нет)?
Например, рассмотрим следующий код:
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
Уверенный в себе. Но обратите внимание, что вы сравниваете итераторы, а не значение, указанное итераторами. – dchhetri
@ user814628 Доказательства, пожалуйста? – BoBTFish
Я думал, это было очевидно. Если мы можем сравнивать неконстантный объект const, нет причин, по которым мы не сможем сравнивать итераторы. – dchhetri