std:地图如何实现修改key的值

std::map怎么实现修改key的值
std::map怎么实现修改key的值
------解决思路----------------------
直接修改应该是不行的,不过可以复制一个新的,然后把旧的删掉
------解决思路----------------------
map好像是用红黑树实现的,如果直接修改key,树的结构就被破坏了。
------解决思路----------------------
一种方法,删除旧的,再插入新值
------解决思路----------------------
用STL的接口的话只能删了再加。自己写平衡二叉树的话还可以折腾一下,不过复杂度不会变。
------解决思路----------------------
删了再加,简单。
------解决思路----------------------

std::map<int, double>  m;
m[5] = 6.6;
....
double v = m[5];
m.erase(5);
m[10] = v;