Если вектор является частью состояния класса, либо как член, либо
в качестве основы (хотя это действительно плохая практика публично наследовать от
vector
), тогда функция-член const
не должна ее изменять. Если
вектор является частью состояния, и функция изменяет его, функция
не должно быть постоянным.
Вообще. Существуют особые случаи, когда, например, вектор
представляет кэшированное состояние, которое вычисляется логически, но чье
Расчет стоит дорого. В таких случаях вы можете сделать вектор
изменчивый член. Но убедитесь, что вектор действительно не представляет
"наблюдаемое состояние".
И, наконец, код, который вы публикуете, не имеет никакого отношения к
эта проблема. Для начала, единственная функция неконстантна. И
код не будет компилироваться по нескольким причинам (использование this
в не-члене
функция, вызов функции-члена insert
на итераторе, который
нет такого члена и т. д.).