Здравствуйте, Vain, Вы писали:
Q>>Если бы разыменование итератора возвращало константную ссылку, то такой проблемы бы не возникало. V>А если изменения ключа не приводит к изменению порядка, то зачем платить больше?
Тут все в компайл тайм. Чего платить-то?
А вот в ногу выстрелить шанса меньше. Как с it->first в std::map.
Q>>При этом не константный итератор позволял бы удалять и вставлять элементы. V>У вставки/удаления сложность не константная.
Это-то здесь причем.
Я имею в виду, что у iterator операторы * и -> возвращали бы константную ссылку, как у const_iterator.
При этом, для iterator можно было бы звать erase и т.п., как обычно.