//求滿足最左字符條件的字符,結果為最后一個滿足條件的字符
vector<StruAna>::iterator itss=struA.begin();
while (itss!=struA.end()){
if (itss->m_pos.m_bottom>=iMiddleY && itss->m_pos.m_top<=iMiddleY){
pleft->m_iIndex=itss->m_iIndex;
pleft->m_iType=itss->m_iType;
pleft->m_iType2=itss->m_iType2;
pleft->m_iMiddleY=itss->m_iMiddleY;
pleft->m_pos.m_bottom=itss->m_pos.m_bottom;
pleft->m_pos.m_left=itss->m_pos.m_left;
pleft->m_pos.m_right=itss->m_pos.m_right;
pleft->m_pos.m_top=itss->m_pos.m_top;
pleft->m_iMiddleX=itss->m_iMiddleX;
ves.push_back(*pleft);
}
++itss;
}
//最左的
delete pleft;
if (ves.begin() == NULL)//////////////////////////////
{
//delete pp;
return;
}
vector<StruAna>::iterator itb2=ves.begin();
vector<StruAna>::iterator itb1=ves.begin();
for (;itb1!=ves.end();++itb1){
for (itb2=itb1;itb2!=ves.end();++itb2){
if (itb1->m_pos.m_left>itb2->m_pos.m_left){
itb1->m_iIndex=itb2->m_iIndex;
itb1->m_iType=itb2->m_iType;
itb1->m_iType2=itb2->m_iType2;
itb1->m_iMiddleY=itb2->m_iMiddleY;
itb1->m_pos.m_bottom=itb2->m_pos.m_bottom;
itb1->m_pos.m_left=itb2->m_pos.m_left;
itb1->m_pos.m_right=itb2->m_pos.m_right;
itb1->m_pos.m_top=itb2->m_pos.m_top;
itb1->m_iMiddleX=itb2->m_iMiddleX;
}
}
}
StruAna *pp=new StruAna;
vector<StruAna>::iterator ita=ves.begin();
pp->m_iIndex=ita->m_iIndex;
pp->m_iType=ita->m_iType;
pp->m_iType2=ita->m_iType2;
pp->m_iMiddleY=ita->m_iMiddleY;
pp->m_pos.m_bottom=ita->m_pos.m_bottom;
pp->m_pos.m_left=ita->m_pos.m_left;
pp->m_pos.m_right=ita->m_pos.m_right;
pp->m_pos.m_top=ita->m_pos.m_top;
pp->m_iMiddleX=ita->m_iMiddleX;
m_left.push_back(*pp);
vector<StruAna>::iterator itst=struA.begin();
while (itst!=struA.end()){
if (itst->m_pos.m_left==ita->m_pos.m_left){
itst=struA.erase(itst);
--itst;
}
++itst;
}
delete pp;
}
直接是光碟上的源代碼,在VS2010中運行就出現這個錯誤,應該怎么解決啊?
uj5u.com熱心網友回復:
if (ves.begin() == NULL)
看樣子應該是
if (ves.begin() == ves.end() )
uj5u.com熱心網友回復:
貌似不報錯了,但是程式運行時候會中斷。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143354.html
標籤:基礎類
上一篇:打開一個已經存在的WORD文檔,C++builder 2010
下一篇:求高手相助
