vector 在erase後,原本的iterator會失效 (被移除了)
所以在使用for-loop + erase要注意
std::vector::erase()會回傳一個有效的iterator
example::
std::vector<int> myVector;
std::vector<int>::iterator it;
for(it = myVector.begin(); it !=myVector.end();)
{
if(*it != 1)
it = myVector.erase(it);
else
++it;
}
沒有留言:
張貼留言