У меня есть два итератора в контейнер, один const и один не const. Есть ли проблема с их сопоставлением, чтобы убедиться, что оба они относятся к одному и тому же объекту в контейнере? Это общий вопрос итератора С++ 11:
Можно ли закончить сопоставление итератора const и non-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