首页 > 代码库 > 删除vector中元素高效的方法
删除vector中元素高效的方法
#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_back int 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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。