当前位置: 代码迷 >> C语言 >> STL MAP结构不稳定,请问各位是否有解决办法
  详细解决方案

STL MAP结构不稳定,请问各位是否有解决办法

热度:349   发布时间:2008-05-22 08:50:16.0
STL MAP结构不稳定,请问各位是否有解决办法
在使用HP-UX下使用STL MAP,发现某些KEY对应的的VALUE,并不是该KEY应该对应的值,而是另一个KEY的值,感觉其自身内存结构已经出错了。而换一台主机运行相同的程序,能够正常执行。

请问是否在使用STL MAP有什么设置?
typedef map<string, string> MapDT;
typedef map<string, string>::iterator MapDTIterator;
……
MapDTIterator itermapdt;
string strSourceDimension;
string strSourceTarget;
……
初始化mapSourceDT
……
for(itermapdt=mapSourceDT.begin(); itermapdt!=mapSourceDT.end(); ++itermapdt){
    strSourceDimension = itermapdt->first;
    strSourceTarget = itermapdt->second;
    if(mapTargetDT.find(strSourceDimension) == mapTargetDT.end()){//新的记录
        mapTargetDT.insert(MapDT::value_type(strSourceDimension, strSourceTarget));
    }else{//旧的记录
        mapTargetDT[strSourceDimension]=smapTargetDT[strSourceDimension]+trSourceTarget;
    }
}

现在就是更新后的mapTargetDT[strSourceDimension],再读取出来就有问题了(而且再mapTargetDT[strSourceDimension]基础上多了“逗号”)。感觉代码还是比较简单的,所以才觉得是不是STL MAP有什么需要设置或者注意的地方。而且就是怕线程太多而出错,因此这个程序是没有用线程实现。

[[it] 本帖最后由 hanren 于 2008-5-22 11:25 编辑 [/it]]
搜索更多相关的解决方案: STL  MAP  string  内存  结构  

----------------解决方案--------------------------------------------------------
  相关解决方案