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' в последнюю строку кода, то все будет работать хорошо, но тогда я не смогу изменить значение ...
Это нормальное поведение, и я должен, скажем, удалить данные, изменить значения и вернуть их снова?
У меня такое ощущение, что это как-то связано с сортировкой набора, но я не буду касаться переменных, которые используются для сортировки.