返回信息流如果建一个multimap对象
multimap<int,int> ivec;//一个key对应4个value
我用什么方法可以把key=1的4个value用key=2的4个value替代了?
这是一条镜像帖。来源:北邮人论坛 / cpp / #45574同步于 2010/11/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于C++中multimap的问题,求指导
laksjd88
2010/11/3镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
用iterator遍历,然后修改key=1所对应的value值
对于map和multimap,key一旦插入是不能修改的,只有删除再重新插入
而key对应的value是可以修改的
【 在 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做替代?
多谢!!!
用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);
: ...................