// 给你写了个简单的例子,不知道合不合你的题意? vector<int>vertical; for ( int i=1; i<10; i++) { vertical.push_back(i); } vector<int> ::iterator pIter = vertical.begin(); for( ; pIter != vertical.end(); ) // 遍历 { if ( *pIter % 2 == 0 ) // 如果符合删除条件,则删除 { pIter = vertical.erase(pIter) ; } else // 不符合删除条件时,指针往下接着走 { pIter++; } }