版权声明:本文为博主原创文章,未经博主允许不得转载。访问本人博客可以百度COCO56,获取更多资讯。有事儿请内信或者在文章下方评论 https://blog.csdn.net/COCO56/article/details/88916290
erase方法在删除元素A后,迭代器会变成野指针,并返回一个指向元素A的下一个元素的迭代器。
下面是使用的案例:
// erasing from vector
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector<int> myvector;
// set some values (from 1 to 10)
for (int i = 1; i <= 10; i++) myvector.push_back(i);
// erase the 6th element
myvector.erase(myvector.begin() + 5);
// erase the first 3 elements:
myvector.erase(myvector.begin(), myvector.begin() + 3);
std::cout << "myvector contains:";
for (unsigned i = 0; i < myvector.size(); ++i)
std::cout << ' ' << myvector[i];
std::cout << '\n';
myvector.clear();
// set some values (from 1 to 10)
for (int i = 1; i <= 10; i++) myvector.push_back(i);
for (vector<int>::iterator it = myvector.begin(); it != myvector.end();)
{
if (*it == 5)
{
it = myvector.erase(it);
//myvector.erase(it);//错误写法
}
else
{
it++;
}
}
std::cout << "myvector contains:";
for (unsigned i = 0; i < myvector.size(); ++i)
std::cout << ' ' << myvector[i];
std::cout << '\n';
return 0;
}