您的位置:首页 > 其它

在程序中map的简单使用方法

2012-09-04 09:10 369 查看
由于要存储一系列不连续的整数对,在论坛上提问后有人提到这个,便百度了一下用法,并在工程里面验证使用了一些;先上代码

由于是有16组数据,每组数据还最多包含16个数值,其中还得进行筛选
int i,j;
CString	strZone,strCh;
int nCh,nZone;
for (i=0;i<16;i++)
{
//将各个信道别名与其区域字符串显示在列表中
//获取各个区域信道数----共16个区域
for (j=0;j<16;j++)
{
//获取当前区域/信道别名
strZone = GetName(i+1,j+1,ZONE_NAME,ZONE_CHANNEL_NAME_BYTE,18,0,false);
strCh = GetName(i+1,j+1,CHANNEL_CHANNAME,ZONE_CHANNEL_NAME_BYTE);
if(!(strCh.IsEmpty() ||strZone.IsEmpty()))
{
m_ListAvaibleCh.AddString(strZone+":"+strCh);//m_ListAvaibleCh是一个listctrl
nCh = DWORD(j)&0x00ff;
nZone = (DWORD(i)<<8)&0xff00;
mapAllChannel.insert(pair<int,DWORD>(i*16+j,nZone|nCh));//mapAllChannel在.h中定义map< int , DWORD >	mapAllChannel;
}
m_cbScanTcCh.AddString(strZone+":"+strCh);
}
}
for (map_it = mapAllChannel.begin();map_it != mapAllChannel.end();map_it++)//map< int,DWORD>::iterator	map_it;迭代器定义
{
strCh.Format("%d,%.4x\n",map_it->first,map_it->second);//数据内容显示
TRACE(strCh);
}
由于筛选前提,是数据中存在name,然后找到该name并在listctrl中显示,但同时,还要将其信道号与区域号填入这个map中,方便后面进行删减。

主要是红色部分是map的一点使用。

程序中其他还要使用到该map机制,其他使用方法继续验证
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐