删除vector中元素高效的方法

来源:互联网 发布:淘宝介入怎么撤销 编辑:程序博客网 时间:2024/05/12 23:50
#include <iostream>#include <vector>using namespace std;int main(){std::vector<int> ve1;ve1.push_back(1);ve1.push_back(2);ve1.push_back(3);ve1.push_back(4);ve1.push_back(5);ve1.push_back(6);std::vector<int>::iterator it;cout<<"删除前的元素:";for (it=ve1.begin();it!=ve1.end();++it){cout<<" "<<*it;}cout<<endl;// 这里移除的算法复杂度是O(1),将待删除元素与最后一个元素交换再pop_backint idx=0;if (static_cast<size_t>(idx) == ve1.size()-1){ve1.pop_back();}else{   iter_swap(ve1.begin()+idx, ve1.end()-1);   ve1.pop_back();}cout<<"删除后的元素:";for (it=ve1.begin();it!=ve1.end();++it){cout<<" "<<*it;} cout<<endl; system("pause");return 0;}

0 0
原创粉丝点击