c++ STL map

转自https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html

1、map简介

map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。

对于迭代器来说,可以修改实值,而不能修改key。

2.使用

例如,map<int,string> personnel;         //建立一种映射关系,  int指向string

这样就定义了一个用int作为索引,并拥有相关联的指向string的指针.

3.从map中删除元素

 移除某个map中某个条目用erase()

该成员方法的定义如下:

iterator erase(iterator it);//通过一个条目对象删除

iterator erase(iterator first,iterator last)//删除一个范围

size_type erase(const Key&key);//通过关键字删除

clear()就相当于enumMap.erase(enumMap.begin(),enumMap.end());

下面在例子中详细说明它们的用法

  1.  //如果要删除1,用迭代器删除  
  2.   
  3.        map<int, string>::iterator iter;  
  4.   
  5.        iter = mapStudent.find(1);  
  6.   
  7.        mapStudent.erase(iter);  
  8.   
  9.        //如果要删除1,用关键字删除  
  10.   
  11.        int n = mapStudent.erase(1);//如果删除了会返回1,否则返回0  
  12.   
  13.        //用迭代器,成片的删除  
  14.   
  15.        //一下代码把整个map清空  
  16.   
  17.        mapStudent.erase( mapStudent.begin(), mapStudent.end() );  
  18.   
  19.        //成片删除要注意的是,也是STL的特性,删除区间是一个前闭后开的集合  

4.map中的swap用法

map中的swap不是一个容器中的元素交换,而是两个容器所有元素的交换。

5.排序 ·  map中的sort问题

map中的元素是自动按Key升序排序,所以不能对map用sort函数;

6.map的一些基本操作

map的基本操作函数:

     C++ maps是一种关联式容器,包含“关键字/值”对

     begin()         返回指向map头部的迭代器

     clear()        删除所有元素

     count()         返回指定元素出现的次数

     empty()         如果map为空则返回true

     end()           返回指向map末尾的迭代器

     equal_range()   返回特殊条目的迭代器对

     erase()         删除一个元素

     find()          查找一个元素

     get_allocator() 返回map的配置器

     insert()        插入元素

     key_comp()      返回比较元素key的函数

     lower_bound()   返回键值>=给定元素的第一个位置

     max_size()      返回可以容纳的最大元素个数

     rbegin()        返回一个指向map尾部的逆向迭代器

     rend()          返回一个指向map头部的逆向迭代器

     size()          返回map中元素的个数

     swap()           交换两个map

     upper_bound()    返回键值>给定元素的第一个位置

     value_comp()     返回比较元素value的函数

 

 

posted @ 2019-10-04 11:22  晴屿  阅读(118)  评论(0编辑  收藏  举报