Possible Duplicate:
C++ STL set update is tedious: I can't change an element in placestd :: set iterator automaticamente const
ho estratto il problema e ha cambiato nomi e così per amor di semplicità.
Fondamentalmente ho un'istanza di una classe e di I stock in uno std :: set, in seguito mi piacerebbe avere un riferimento alla classe in modo che posso controllare i suoi valori e modificarli ...
il codice semplificato:
MyClass tmpClass;
std::set<MyClass > setMyClass;
setMyClass.insert(tmpClass);
std::set<MyClass >::iterator iter;
iter=setMyClass.begin();
MyClass &tmpClass2=*iter;
e l'errore:
error C2440: 'initializing' : cannot convert from 'const MyClass' to 'MyClass &'
(ho rimosso le parti del messaggio di errore "MVB :: :: Run" per cancellare in su troppo.)
se aggiungere un 'const' che precede l'ultima riga di codice, allora tutto funziona bene, ma poi non posso cambiare il valore ...
È questo un comportamento normale e devo, per esempio, rimuovere il dati, cambiare valori e rimetterlo?
Ho la sensazione che questo abbia qualcosa a che fare con l'ordinamento del set ma non toccherò le variabili utilizzate per l'ordinamento.
Puoi farlo, ma è una cattiva pratica. –