首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

map中嵌套map,查找的时候有有关问题

2012-03-09 
map中嵌套map,查找的时候有问题我定义 mapCString , maplong,POI_INFO m_mapPOImaplong,POI_INFO

map中嵌套map,查找的时候有问题
我定义 map<CString , map<long,POI_INFO> > m_mapPOI;
  map<long,POI_INFO> mapPoi;
POI_INFO是自定义的结构体

  //mapPoi已经插入了元素
  插入元素:m_mapPOI.insert( pair< CString,map<long,POI_INFO> >(“ddd”,mapPoi) );
   
  itrMap = m_mapPOI.begin();
  itrPoi = itrMap->second.find(92629); //使用这个语句查找时:找到的Key值不是 92629 ,对应的value也不对 为什么??求解释


[解决办法]
你是不是改了 mapPoi
以为 m_mapPOI 这里面的 map<long,POI_INFO> 也跟着改呀???

这个不是可能的,stl统统都是传对象的哦, m_mapPOI 里的 是 mapPoi 的副本

兄弟,你这个大对象可以非常 损耗性能的哦!!!!
[解决办法]
map<CString , map<long,POI_INFO>* > m_mapPOI;


m_mapPOI[“ddd”] = &mapPoi;

这样试试吧。

ps 我只管用,没给你分析该不该这样用。。。。。这样至少能用 :)
[解决办法]
itrMap = m_mapPOI.find("ddd");
if (itrMap != m_mapPOI.end()) {
itrPoi = itrMap->second.find(92629); 
}

那就这样试试吧

热点排行