c++map容器插入和删除

函数原型:
insert(elem); //在容器中插入元素。
clear(); //清除所有元素
erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg, end); //删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(key); //删除容器中值为key的元素。

插入删除和set一样,迭代器类型也和set一样,都是双向迭代器,因此也没有[]和+=的操作,也没有固定位置插入,因为会自动排序,在任何位置插入都是相同的

  map<int,int> m1;//插入数据的4种方式
  m1.insert(pair<int,int>(1,10));
  m1.insert(make_pair(5,50));//好处就是可以省去模板参数,如果参数不对,会自动报错
  m1.insert(map<int,int>::value_type(6,60));
  m1[7] = 70;//直接输入数值
  cout << m1[5] <<endl;
  cout << m1[8] <<endl;//中括号有个问题,如果没有这个key的实际数,他会自动的创建一个值为0的实际数
  //所以map中[]不建议插入数据,但是可以方便进行访问,如果能够确定key存在,就很方便的进行访问
  printmap(m1);
  m1.erase(5);//注意,这里删掉的是key的数,不是value的数
  printmap(m1);
  m1.erase(70);//如果试图删掉value的数,那实际上是没用的
  printmap(m1);
50
0
10 50 60 70 0
10 60 70 0
10 60 70 0
posted @ 2022-05-11 22:12  纸包鱼  阅读(1382)  评论(0)    收藏  举报