C++20前,vector可以通过成员函数erase删除迭代器指定的元素,并返回被删除的下一个元素:
iterator erase( iterator pos );
iterator erase( iterator first, iterator last );
1.通过迭代器删除指定位置元素文章来源:https://www.toymoban.com/news/detail-794720.html
需要说明的是,删除元素后,迭代器会失效,可以通过erase返回下一个有效的迭代器文章来源地址https://www.toymoban.com/news/detail-794720.html
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
void pData(auto& data)
{
for(auto& i : data)
{
cout<<i<<" ";
}
cout<<endl;
cout<<"size:"<<data.size()<<" capacity:"<<data.capacity()<<endl;
}
int main()
{
vector<int> data{ 1, 2, 3, 4, 5, 6, 7, 8};
pData(data);
for(auto it=data.begin(); it!=data.end();)
{
if(*it % 2 == 0)
{
it = data.erase(it);
}
else
{
it++;
}
}
pData
到了这里,关于C++(20):vector通过erase,erase_if删除符合条件的元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!