std :: set итератор автоматически const [дубликат]

Возможный дубликат:
Обновление набора C ++ STL утомительно: я не могу изменить элемент на месте

Я извлек проблему и изменил имена и так для простоты.

По сути, я создаю экземпляр класса и храню его в std :: set, позже я хотел бы иметь ссылку на класс, чтобы я мог проверить его значения и изменить их ...

Упрощенный код:

        MyClass tmpClass;
        std::set<MyClass > setMyClass;
        setMyClass.insert(tmpClass);
        std::set<MyClass >::iterator iter;
        iter=setMyClass.begin();
        MyClass &tmpClass2=*iter;

и ошибка:

error C2440: 'initializing' : cannot convert from 'const MyClass' to 'MyClass &'

(Я удалил части сообщения об ошибке "MVB :: Run ::", чтобы очистить его тоже.)

если я добавлю предыдущий 'const' в последнюю строку кода, то все будет работать хорошо, но тогда я не смогу изменить значение ...

Это нормальное поведение, и я должен, скажем, удалить данные, изменить значения и вернуть их снова?

У меня такое ощущение, что это как-то связано с сортировкой набора, но я не буду касаться переменных, которые используются для сортировки.

Ответы на вопрос(2)

Ваш ответ на вопрос