确定更新问题,因为错误消息已更改。
我的驱动程序文件具有测试代码的主要功能,并设置如:
int main(){
mutable_heap<int> mutaheap;
return 0;
}
mutable_heap的默认构造函数是: mutable_heap(){}
我得到的错误是“参见类模板实例化&#39; mutable_heap&#39;被编译&#39;
答案 0 :(得分:1)
根据the spec,密钥总是作为const引用接收:
print '\n\nPhone List\n\n'
for i in phonelist:
name = (str(i['return']['phone']['name']))
pattern = (str(i['return']['phone']['lines']['line'][0]['dirn']['pattern']))
ownerIdcheck = (str(i['return']['phone']['ownerUserName']))
if len(ownerIdcheck) > 0:
ownerId = (str(i['return']['phone']['ownerUserName']['value']))
else:
ownerId = ''
print name, ' | ', pattern , ' | ',ownerId
这里不足为奇。但是因为你的地图是可变的(即非const限定),你会收到iterator find ( const key_type& k );
const_iterator find ( const key_type& k ) const;
,这是一个可修改的包装器,它保存在容器中的特定值。
所以,基本上:
iterator
我假设void update(const T& old_val, const T& new_val)
{
auto it = map.find(old_val);
if(it != map.end)
{
//unordered_map stores std::pair<hash, value>
it->second = new_val;
}
}
是全局函数或非静态成员函数。在第一种情况下应该没有问题,第二种情况 - 我没有看到update
限定符,所以也不应该有任何问题。
这是你尝试过的解决方案吗?