您的位置:首页 > 其它

bug记事:STL map 引发的血案

2011-05-28 09:51 295 查看
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取值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: