const_iterator равен не о том, можете ли вы изменить контейнер или нет, а о том, можете ли вы изменять объекты в контейнере или нет.В вашем случае контейнер содержит указатели, и вы не можете изменять сами указатели (больше, чем вы могли бы изменять целые числа ...). Вы все равно можете сделать вызов неконстантного Refresh () за указателем из коллекции, потому что этот вызов делаетне изменяйте указатель сам по себе .
Разница между const_iterator и итератором важна [только], когда ваш контейнер содержит, например, экземпляры классов, не указатели на них, а сами экземпляры, например, вКонтейнер
list < pair < int , int > >
Если 'it' является const_iterator в этом списке, вы не можете сделать
it->first = 5
, но если это итератор (не const_iterator), это работает.