bug记事:STL map 引发的血案

来源:互联网 发布:ida pro for linux 编辑:程序博客网 时间:2024/05/07 09:59
   1:  int pairwiseOneSeqIndex  = pc->pairwiseOne[i];
   2:  int pairwiseTwoSeqIndex  = pc->pairwiseTwo[i]; 
   3:   
   4:  int pairwiseOneBetaIndex  =  MapSeqIndexToBetaIndex[pairwiseOneSeqIndex];
   5:  int pairwiseTwoBetaIndex  =  MapSeqIndexToBetaIndex[pairwiseTwoSeqIndex];
.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }

 

这个问题是这样的, 莫名发现map里面多了某个元素,而这个问题就在于,map不一定得像下面那样才算增加一个元素(也可能是覆盖最初的值):

   1:  MapSeqIndexToBetaIndex[i] = BetaResideIndex;
.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }

像最上面的那样在赋值符号右边也可能莫名增加一些元素,只是莫名增加的元素key存在,而value却为默认值0(对int,char等)。所以在使用的时候一定要谨记不要对自己不存在的key取值。

原创粉丝点击