Possible Duplicate:
C++ STL set update is tedious: I can't change an element in placeのstd ::設定イテレータ自動的にconstの
私は、問題を抽出し、simplicities酒の名前などを変更しました。基本的には
...後で私はその値を確認し、それらを変更できるように、クラスへの参照を持っているしたいのですが、私はクラスをインスタンス化し、私がのstd ::セットでそれを買いだめ
単純化されたコード:
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 ::ファイル名を指定して実行::" あまりにもそれをクリアする。)
私は、コードの最後の行に先行する「のconst」を追加した場合、その後、すべてがうまく動作が、その後、私は値を変更することはできません...
はこの正常な動作ですし、私は、たとえば、削除する必要がありますデータ、値を変更して元に戻しますか?
これはセットのソートと関係がありますが、ソートに使用する変数には触れません。
としてあなたが変更しようとするクラスのメンバを宣言することができあなたはこれをすることができますが、それは悪い習慣です。 –