vector :

iter = container.erase(iter);    //erase的返回值是删除元素下一个元素的迭代器

vector<int>::iterator it = a.begin();
for(;it !=a.end();)
{
printf("%d\n",*it);
it = a.erase(it);
}

map:

dataMap.erase(iter++) 

注:map erase 没有返回下一个迭代器的方法

 

#include <cstdio>
#include <iostream>
#include <vector>
#include <map>
using namespace std;

int main(int argc, char *argv[])
{
   vector<int>a;
   a.push_back(1);
   a.push_back(2);
   a.push_back(3);
   a.push_back(4);
   vector<int>::iterator it = a.begin();
   for(;it !=a.end();)
   {
       printf("%d\n",*it);
       it=a.erase(it);
   }
   map<int,int>b;
   b[1]=1;
   b[2]=2;
   b[3]=3;
   b[4]=4;
   map<int,int>::iterator it1 = b.begin();
   for(;it1!=b.end();)
   {
       printf("%d\n",it1->first);
       b.erase(it1++);
   }

}

 

相关文章:

  • 2021-10-01
  • 2021-06-07
  • 2022-12-23
  • 2021-08-06
  • 2023-02-10
  • 2022-12-23
  • 2021-09-01
猜你喜欢
  • 2022-12-23
  • 2022-01-09
  • 2021-08-11
  • 2021-11-10
  • 2021-07-24
  • 2021-06-06
  • 2021-04-27
相关资源
相似解决方案