网站底部的制作/黄页引流推广链接
erase既可以删除单个元素,也可以按区间删除多个元素;
①首先删除单个元素 我认为erase在删除vector时,是将地址一并删除
正确例子:
#include "stdafx.h"#include<stdio.h>#include<vector>using namespace std;int _tmain(int argc, _TCHAR* argv[]){vector<int> vi;for(int i=1;i<=5;i++){vi.push_back(i);}for(int i=1;i<=5;i++){vi.insert(vi.begin()+2,i+5);}vector<int>::iterator it=vi.begin();for(;it!=vi.end();it++){printf("%d ",*it);}printf("\n");vi.erase(vi.begin());for(int i=0;i<vi.size();i++){printf("%d ",vi[i]);}return 0;}
错误示范:
#include "stdafx.h"
#include<stdio.h>
#include<vector>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{vector<int> vi;for(int i=1;i<=5;i++){vi.push_back(i);}for(int i=1;i<=5;i++){vi.insert(vi.begin()+2,i+5);}vector<int>::iterator it=vi.begin();for(;it!=vi.end();it++) //这里是错误的{printf("%d ",*it);}vi.erase(vi.begin());for(;it!=vi.end();it++){printf("%d ",*it);}return 0;
}