首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

双向迭代器崩溃解决方法

2012-12-14 
双向迭代器崩溃void CChildFrame::OnPreview(){// TODO: 在此添加命令处理程序代码if(g_vHandel.size()1

双向迭代器崩溃

void CChildFrame::OnPreview()
{
// TODO: 在此添加命令处理程序代码

if(g_vHandel.size()<=1)
return;
if(g_vHandel[0]==GetSafeHwnd())
return;

CTestView* pCurrView=(CTestView*)GetActiveView();
ASSERT(pCurrView);
CTestDoc* pTestDoc=pCurrView->GetDocument();
ASSERT(pTestDoc);
POSITION pos=pTestDoc->GetFirstViewPosition();
CTestView* pNextView;
pNextView=(CTestView*)pTestDoc->GetNextView(pos);

vector<HWND>::iterator iter=g_vHandel.begin();

while(pNextView)
{
vector<HWND>::iterator iter2=iter;

//std::advance(iter2,-1);

iter2--;   //这里崩溃

if(pNextView->GetSafeHwnd()==*iter2)
{
break;
}

pNextView=(CTestView*)pTestDoc->GetNextView(pos);
++iter;
}


if(pNextView==NULL)
return;
SetActiveView(pNextView);

}




[解决办法]
while(pNextView != g_vHande.end())

热点排行