C++ Map 嵌套

来源:互联网 发布:包装袋设计软件 编辑:程序博客网 时间:2024/05/14 13:36

在开发项目过程中,需要保存一些动态信息,还需要方便查找,采用了嵌套的map来保存

具体如下:


class P2PDirectService

{

typedef std::map<INT, std::map<std::string, INT> > DevicePortsMap;
typedef DevicePortsMap::iterator DevicePortsMapIterator;
DevicePortsMap m_devicesPortsMap;

}

// 添加

P2PDirectService::GetAvaliableExternalAddress()

{

INT lcPort;
INT extPort;

std::map<std::string, INT> temp;

temp[devIp->AsCStr()] = extPort;     

m_devicesPortsMap[lcPort] = temp;

}

// 查找

P2PDirectService::DoPortMapping(

/* [in] */const InternetAddress& localAddr,
/* [in] */ InternetAddress& externalAddr,
/* [in] */  LPCSTR srvType,
/* [in] */  LPCSTR protocol)

{

DevicePortsMapIterator multiIte;
std::map<std::string, INT>::iterator ite;
multiIte = m_devicesPortsMap.find(localAddr.GetPort());
if (multiIte != m_devicesPortsMap.end())
{
ite = multiIte->second.find(localAddr.GetLiteralAddress());
if (ite != multiIte->second.end())
{
externalAddr.SetPort((LONG)ite->second);
return S_OK;
}
}

}



0 0
原创粉丝点击