Как изменить заданный элемент? - PullRequest
6 голосов
/ 07 марта 2012

Я хочу изменить элемент в set, поэтому я использовал set<T>::iterator.Однако компилятор утверждает, что «элемент является константой».Тогда я понял, что set<T>::iterator это const_iterator ...

Итак, как я могу изменить элемент?Стереть, а затем вставить новый?

Ответы [ 2 ]

20 голосов
/ 07 марта 2012

Элементы set будут в отсортированном порядке. Если вам разрешено изменять элемент, этот порядок сортировки не может быть сохранен. Следовательно, вы не можете изменить элемент. Вам нужно стереть существующий элемент и вставить новый.

0 голосов
/ 07 марта 2012

РЕДАКТИРОВАТЬ: Вы не можете добавить элемент в определенное место в наборе. набор должен быть в отсортированном порядке, какие бы операции вы ни делали. Таким образом, вы должны стереть определенный элемент и вставить новый элемент, чтобы упорядочение набора не было потеряно.

Также читайте подробнее о set !

...