Как и в вопросе, мне интересно, почему. Потому что я получаю сообщение об ошибке, когда пытаюсь получить расстояние между итераторами const
и non const
.
vector<int> v;
auto it=v.begin();
auto cit=v.cbegin();
distance(it,cit);
no matching function for call to ‘distance(__gnu_cxx::__normal_iterator<int*, std::vector<int> >&, __gnu_cxx::__normal_iterator<const int*, std::vector<int> >&)
Из моего ограниченного понимания итераторов я не вижу причин, почему это не должно работать.