Я хочу изменить элемент в set
, поэтому я использовал set<T>::iterator
. Однако компилятор утверждает, что «элемент const». Тогда я понял, что set<T>::iterator
является const_iterator
...Как изменить элемент набора?
Итак, как я могу изменить элемент? Удалите его, а затем вставьте новый?
Следует отметить, что некоторые изменения элемента не влияют на его сортировку. Если вы хотите внести изменения, которые, как вы уверены, не повлияют на порядок сортировки, всегда существует 'const_cast' в качестве последнего средства. Рискованный и не красивый, но тем не менее. – jogojapan
спасибо.Я знаю это. Так это единственный способ изменить элемент? –
Поскольку 'erase' не выбрасывает, если код пользователя не вызывает броски, вероятно, лучше вставить новый элемент, а затем стереть старый. Это дает вам шанс на сильную гарантию исключения. –