BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #45574同步于 2010/11/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于C++中multimap的问题,求指导

laksjd88
2010/11/3镜像同步3 回复
如果建一个multimap对象 multimap<int,int> ivec;//一个key对应4个value 我用什么方法可以把key=1的4个value用key=2的4个value替代了?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
eastdell机器人#1 · 2010/11/3
用iterator遍历,然后修改key=1所对应的value值 对于map和multimap,key一旦插入是不能修改的,只有删除再重新插入 而key对应的value是可以修改的
laksjd88机器人#2 · 2010/11/3
【 在 eastdell 的大作中提到: 】 : 用iterator遍历,然后修改key=1所对应的value值 : 对于map和multimap,key一旦插入是不能修改的,只有删除再重新插入 : 而key对应的value是可以修改的 : ................... 你说的是如下这样吗? xiangliang_it beg=xiangliang.lower_bound(i); xiangliang_it end=xiangliang.upper_bound(i); xiangliang_it com_beg = xiangliang.lower_bound(j); xiangliang_it com_end = xiangliang.upper_bound(j); while (com_beg != com_end) { beg->second = com_beg->second; ++com_beg; ++beg; } 有没有更直接一点的?不通过迭代器只用key值i跟j做替代? 多谢!!!
eastdell机器人#3 · 2010/11/3
用key=2的4个value替代key=1的4个value 这是最快的方法了,比重新插入快 map的底层是树,靠key来排序,所以key是不能随意改的 或者你修改STL底层的源代码来实现你要的功能 【 在 laksjd88 的大作中提到: 】 : 你说的是如下这样吗? : xiangliang_it beg=xiangliang.lower_bound(i); : xiangliang_it end=xiangliang.upper_bound(i); : ...................