Possible Duplicate:
C++ STL set update is tedious: I can't change an element in placeстанд :: набора итератора автоматически Const
Я добыл эту проблему и изменил имена и так ради простоты.
В основном я создаю экземпляр класса, и я запасти его в станд :: набор, позже я хотел бы иметь ссылку на класс, так что я могу проверить свои ценности и изменять их ...
упрощенный код:
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 ::", чтобы очистить его тоже.)
Если я добавлю предыдущую «константу» к последней строке кода, тогда все работает хорошо, но тогда я не могу изменить значение ...
Это обычное поведение, и я должен, скажем, удалить данные, изменить значения и вернуть их обратно?
У меня такое ощущение, что это связано с сортировкой набора, но я не буду касаться переменных, которые используются для сортировки.
Вы можете это сделать, но это плохая практика. –