可能重复:
C++ STL set更新很繁琐:我无法原地更改元素 我实例化一个类并将其存储在std::set中,稍后我想引用该类,以便我可以检查其值并修改它们...简化的代码:
C++ STL set更新很繁琐:我无法原地更改元素 我实例化一个类并将其存储在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',那么一切都能很好地工作,但是这时我就不能改变它的值了...
这种情况是否属于正常行为,我必须删除数据,更改值,然后再放回去呢?
我有一种感觉,这与集合的排序有关,但我不会触及用于排序的变量。