本文主要是介绍C++(20):vector通过erase,erase_if删除符合条件的元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C++20前,vector可以通过成员函数erase删除迭代器指定的元素,并返回被删除的下一个元素:
iterator erase( iterator pos );
iterator erase( iterator first, iterator last );
1.删除单个元素
#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(data);return 0;
}
运行程序输出:
这篇关于C++(20):vector通过erase,erase_if删除符合条件的元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!