map是一类关联式容器,自动建立Key - Value的对应 , key 和 Value可以是任意你需要的类型。下面介绍 map 中一些常用的函数;
一、map 中的 begin 和 end 函数
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.begin() -> first; // 输出第一个元素的键值
m.begin() -> second ; // 输出第一个元素的 value
m.end() -> first ; // 输出最后一个元素的下一个元素的键值
m.end() ->second ; // 输出最后一个元素的下一个元素的value
二、map 中的 rbegin 和 rend 函数
和其他数据结构差不多,这个是从后往前输出的,返回的值要用变量来存储,变量应该这样定义:map<char,int>::reverse_iterator iter ;
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.rbegin() -> first ; // 输出最后一个元素的键值
m.rend() -> first ; // 输出第一个前面一个元素的键值
三、map 中的 empty 函数
map<char , int> m ;
m.empty() ; //若 map 中的元素为空时,返回 true ,否则返回 false
四、map 中的 size 函数
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.size() ; // 返回 map 中的数据元素个数
五、map 中的 at 函数
at 函数中的参数为键值,输出的是键值相对应的 value ;
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.at('a') ; // 输出键值 a 对应的 value ,相当于 vector 中的 at 中放入下标
六、map 中的 find 函数
find 函数用来查找键值,返回键值所在的位置指针;
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.find('b') -> second ; // 输出键值 b 对应的 value
七、map 中的 insert 函数
和其他数据结构很相似,insert 函数有两个参数,第一个参数表示在什么地方插入,第二个参数表示插入什么
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.insert(m.begin() , pair<char,int>('a',50) ; // 在容器之前插入一个元素('a' , 50) ;
map<char , int> m1 ;
m1.insert(m.begin() , m.end()) ; // 将 m 中的数据全部复制给 m1
m1.insert(m.begin(),m.find('c')) ; // 将 m 中的数据从第一个开始,一直复制到键值为 c 为止
八、map 中的 erase 函数
erase 函数 用来删除 map中的某个对象 , 参数为map对象的键值 ;
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.erase('a') ; //将键值为 a 的这个对象给删除掉
m.erase(m.find('a')) ; 效果和上面一样
m.erase(m.find('a') , ++m.find('b')) ; // 将键值为 a 和 b 的map对象删除
九、map 中的 count 函数
count 函数 顾名思义,用来统计相同键值出现的次数
map<char , int> m ;
m['a'] = 100 ;
m['b'] = 200 ;
m['c'] = 300 ;
m.count('b') ; // 输出键值 b 出现的次数