Possible Duplicate:
C++ STL set update is tedious: I can't change an element in placestd :: set iterador automáticamente const
he extraído el problema y cambiado de nombre y así por el bien de simplicidad.
Básicamente crear instancias de una clase y acciones de la misma en un std :: set, después me gustaría tener una referencia a la clase de modo que pueda comprobar sus valores y modificarlos ...
el código simplificado:
MyClass tmpClass;
std::set<MyClass > setMyClass;
setMyClass.insert(tmpClass);
std::set<MyClass >::iterator iter;
iter=setMyClass.begin();
MyClass &tmpClass2=*iter;
y el error:
error C2440: 'initializing' : cannot convert from 'const MyClass' to 'MyClass &'
(que eliminan partes del mensaje de error, "MVB :: :: Run" para borrar para arriba también.)
si añadir un 'const' que precede a la última línea de código a continuación, todo funciona bien pero entonces no puedo cambiar el valor ...
Es este comportamiento normal y tengo que, por ejemplo, eliminar el datos, cambiar valores y volver a ponerlo?
Tengo la sensación de que esto tiene algo que ver con la clasificación del conjunto, pero no voy a tocar las variables que se utilizan para la clasificación.
Puedes hacer esto, pero es una mala práctica. –