mutilmap 的使用

 multimap<UINT, UINT> lObjMultiMap;
 
 typedef multimap<UINT, UINT>::iterator  MULTIMAP_ITERA;
 lObjMultiMap.insert( pair<int,int>(0,10) ); //添加元素
 lObjMultiMap.insert( pair<int,int>(0,1) );
 lObjMultiMap.insert( pair<int,int>(0,4) );    //key 为0的元素有3 个数值

 lObjMultiMap.insert( pair<int,int>(1,1) );
 lObjMultiMap.insert( pair<int,int>(1,11) );


MULTIMAP_ITERA  iter ;                               //遍历key 为 0的所有元素
pair<MULTIMAP_ITERA, MULTIMAP_ITERA > range ;
range = lObjMultiMap.equal_range(0);
for (iter=range.first; iter!=range.second; iter++)
{
 cout <<iter->first<<" "<<iter->second<<endl;
}
 // 删除指定key为 0 的所有元素
 lObjMultiMap.erase(0);

//删除指定key 为0,数值为10的一个元素
range = lObjMultiMap.equal_range(0);

for (iter=range.first; iter!=range.second; iter++)
{
 cout <<iter->first<<" "<<iter->second<<endl;

 if (iter->second == 10)
 {
  lObjMultiMap.erase(iter);
  break;
 }
}

 

转,multimap使用实例: 事件订阅,subscribeEvent(事件名,Event::subcribe(回调函数);
方法subcribe通过一个Map Container;
typedef std::multimap<Group, Connection> SlotContainer,添加到容器中,
d_slots.insert(std::pair<Group,Connection>(group,c));而在事件触发时,
Event操作()遍历每个订阅事件的函数,代码如下:
for (; iter != end_iter; ++iter)
    args.handled |= (*iter->second->d_subscriber)(args);
这样订阅事件的函数都会遍历回调到!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blue_Dream_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值