Почему нажатие элемента на одном из концов std::deque
делает недействительными все существующие итераторы (хотя все ссылки остаются в силе)?
Я понимаю, что deque реализован в виде массива массивов, и что нажатие элемента на любом конце не приведет к перераспределению существующих элементов. И именно поэтому ссылки остаются в силе. Но так должны итераторы.
Я также понимаю, что итератор deque имеет тип RandomAccessIterator и что этот итератор должен поддерживать некоторые операции, такие как сложение / вычитание постоянного числа, ++, - и т. Д.
Что я не понимаю, так это то, что из операций, которые должны поддерживаться RandomAccessIterator , не может быть реализовано базовой структурой std::deque
.