📄 subject_65194.htm
字号:
<p>
序号:65194 发表者:浪际天涯 发表日期:2003-12-16 10:48:42
<br>主题:关于vector
<br>内容:我的一个迭代器中,本来已经有了一些数据,我删除掉了几个,现在我再push几个新的指针的时候,会出错,为什么呢?各位大侠帮忙呀
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:徐相华 回复日期:2003-12-16 10:54:16
<br>内容:能看看错误信息吗?你是怎么删的的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-12-16 11:11:21
<br>内容:定义:<BR>typedef vector<GUnitGrid*> UnitGrids;<BR>typedef UnitGrids::const_iterator GUNITITERATOR;//图元常量集迭代器<BR>typedef UnitGrids::iterator GITERATOR; //图元集迭代器<BR>UnitGrids m_Units;<BR>删除部分:<BR>GITERATOR gite;<BR>for(gite1=SelectUnits.begin();gite1!=SelectUnits.end();gite1++)<BR>{<BR> if((*gite1) != ltGrid)<BR> {<BR> for(gite2=m_Units.begin();gite2!=m_Units.end();gite2++)<BR> {<BR> if((*gite1)==(*gite2))<BR> {<BR> m_Units.erase(gite2);<BR> break;<BR> }<BR> }<BR> }<BR>}<BR><BR>重新添加的部分:<BR>for(int i=0;i<10;i++)<BR>{<BR> GUnitGrid *pNewCell=new GUnitGrid();<BR> m_Units.push_back(pNewCell);<BR>}<BR><BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:徐相华 回复日期:2003-12-16 11:19:23
<br>内容:执行m_Units.push_back(pNewCell);<BR>时出错吗?单步调试应该能发现问题。估计是删除时出的错。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-12-16 17:35:57
<br>内容:我找到错误了,是删除的时候把指针没有删除掉,<BR>m_Units.erase(gite2);<BR>之前应该加上delete *gite2;<BR>多谢楼上的<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -