int main()
{
// Initialization
vector<int> iv;
for (size_t i = 0; i != 10; ++i)
{
iv.push_back(i);
}
// Print
for (vector<int>::iterator iter = iv.begin(); iter != iv.end(); ++iter)
{
printf("%d ", *iter);
}
printf("/n");
// Iterate and erase
for (vector<int>::iterator iter = iv.begin(); iter != iv.end(); /*No Increment Here*/)
{
if (*iter % 2)
{
iter = iv.erase(iter); // After this, iter will point to the first element beyond the erased one
}
else
{
++iter;
}
}
// Print
for (vector<int>::iterator iter = iv.begin(); iter != iv.end(); ++iter)
{
printf("%d ", *iter);
}
printf("/n");
// The end
system("PAUSE");
return 0;
}
using erase() in a loop like this!
最新推荐文章于 2024-01-20 06:00:00 发布