在网上看了很多erase()的用法,但有些是不能删除头、尾元素,有些是不能删除两个连续的元素,以下是自己参考一些资料实现删除vector中等于3的元素的方法:
#include "stdafx.h" #include <iostream> #include <vector> using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { vector<int> vi; vi.push_back(3); vi.push_back(3); vi.push_back(5); vi.push_back(7); vi.push_back(3); vi.push_back(3); vi.push_back(3);
vector<int>::iterator it; for(it = vi.begin(); it != vi.end(); it++) { cout << *it << endl; }
cout << "=============================" << endl; for(it = vi.begin(); it != vi.end();) { if(*it == 3) { it = vi.erase(it); } else { it++; } }
for(it = vi.begin(); it != vi.end(); it++) { cout << *it << endl; }
system("pause"); return 0; }
以上代码是用vector的erase()方法删除等于3的元素,输出如下:
c++ vector erase删除元素
最新推荐文章于 2025-03-09 14:52:45 发布