STL容器——map常用用法笔记

map——常用STL容器,可将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器),用于散列表法。

map使用时要加上:#include;using namespace std。

map的定义:

map mp;  typename1: 键key的类型;typename2: 值value的类型;

如果是字符串到整型的映射,必须使用string不能使用char数组;

使用map将一个set容器映射到一个字符串:map, string> mp;

map容器内元素的访问:

1.通过下标访问  2.通过迭代器访问

1.通过下标访问 
2.通过迭代器访问

迭代器的定义:1. map::iterator it;

                          2. auto it;

使用迭代器it同时访问键和值:map使用it->first访问键,使用it->second访问值;

map会以从小到大顺序自动排序,因为map内部是使用红黑树实现的,会在建立映射的过程中自动实现从小到大的排序功能,set也是如此。只需处理映射不按键排序,可使用unordered_map,其内部以散列代替红黑树实现,unordered_map速度比map快得多。

map容器添加元素:
1.通过数组下标

m["string"]=19;

2.用insert插入pair元素
mp.insert(pair("heihei",5));
//或:
mp.insert(make_pair("heihei",5));

map常用函数: 

(1) find()

     mp.find(key)返回键为key的映射的迭代器

(2) erase()

     1.删除单个元素:mp.erase(it)或mp.erase(key);

     2.删除一个区间内元素:mp.erase(first, last); first: 需删除区间的起始迭代器,last: 需删除区间末尾迭代器的下一个地址。删除区间为: [first, last)。

(3) size()

      返回map中映射的对数

(4) clear()

     清空map中所有元素

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

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

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

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

     insert()        插入元素

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

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

     swap()           交换两个map

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

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

mp.begin() 为指向mp中第一个元素的迭代器;mp.end()指向mp中最后一个元素下一个地址;

map常用用途:

(1)建立字符串和整数的映射

(2)判断大整数或其他类型数据是否存在,将map当bool数组使用

(3)建立字符串与字符串之间的映射

你可能感兴趣的:(STL,c++)