multimap <string, struct>使用范例
来源:互联网 发布:windows同步时间超时 编辑:程序博客网 时间:2024/05/20 18:55
头文件:#include <map>
声明和定义相关:
typedef struct tag_ALARM_INFO
{
__UINT32 dwAlarmSeq; //流水号
__UINT32 dwCreatedTime; //创建的时间
}ALARM_INFO;
typedef multimap < CString,ALARM_INFO > Alarm_mutimap;
typedef multimap < CString,ALARM_INFO >::iterator Alarm_mutimap_it;
typedef multimap < CString,ALARM_INFO >::size_type Alarm_mutimap_sz;
Alarm_mutimap m_mapIPToAlertInfo;
添加:
ALARM_INFO pAlarmInfo ;
pAlarmInfo.dwAlarmSeq = dwAlarmSeq;
pAlarmInfo.dwCreatedTime = INFOX_GetTickCount();//当前时间
m_mapIPToAlertInfo.insert(multimap< CString,ALARM_INFO >::value_type((CString)lpszClientIP,(ALARM_INFO)pAlarmInfo));
查找:
Alarm_mutimap_sz icount = m_mapIPToAlertInfo.count((CString)lpszClientIP);
if(0 == icount)
{return;}
multimap < CString,ALARM_INFO>::const_iterator itAlarminfo = m_mapIPToAlertInfo.lower_bound((CString)lpszClientIP);
if (itAlarminfo != m_mapIPToAlertInfo.end())
{
dwAlarmSeq = itAlarminfo->second.dwAlarmSeq;
}
删除:
Alarm_mutimap_sz icount = m_mapIPToAlertInfo.count((CString)lpszClientIP);
if (0 != icount)
{
Alarm_mutimap_it itAlarminfo = m_mapIPToAlertInfo.lower_bound((CString)lpszClientIP);
if (itAlarminfo != m_mapIPToAlertInfo.end())
{
TRACE("delete %d",itAlarminfo->second.dwAlarmSeq);
m_mapIPToAlertInfo.erase(itAlarminfo);
}
}
清除超时:
__UINT32 dwCurrentTime = INFOX_GetTickCount();//当前时间
ALARM_INFO pAlarmInfo ;
Alarm_mutimap_it itAlarmInfo = m_mapIPToAlertInfo.begin();
for (;m_mapIPToAlertInfo.end() != itAlarmInfo;itAlarmInfo++)
{
pAlarmInfo =itAlarmInfo->second;
if ( (dwCurrentTime - pAlarmInfo.dwCreatedTime) >= dwMaxLife)
{
m_mapIPToAlertInfo.erase(itAlarmInfo);
dwDeleteNum++;
itAlarmInfo = m_mapIPToAlertInfo.begin();
}
}
- multimap <string, struct>使用范例
- vs2013 使用string,struct,指针
- 使用multimap
- 使用DOM4J解析XML String范例
- STL 之 multimap联合容器范例
- 使用C#拷贝String到struct
- 使用C#拷贝String到struct
- multimap的使用
- multimap 的使用例子
- [转] STL multimap 使用
- Map和MultiMap使用
- map/multimap 简单使用
- C++之multimap 使用
- Guava使用笔记multiMap
- java-multimap使用
- multimap使用和排序
- Guava使用之MultiMap
- Java使用multimap数据结构
- 动态加载指定数据库的实现。
- PHP/MySQL三日通-第三天(一)
- 教你六点将转载变成原创
- PHP/MySQL三日通-第三天(二)
- 水晶报表在vs2010 WPF环境下的尝试
- multimap <string, struct>使用范例
- 对无边框的QT窗体设置点击任务栏按钮最小化和还原事件
- thinkphp 生成静态文件 配置
- hevc移植优化
- MyEclipse 设置JSP的默认打开方式
- php乱码问题分为好几种情况
- 获取桌面窗口句柄
- 无需破解!激活正版Windows 7旗舰版 二枚"神KEY"
- C语言scanf()函数返回值的问题