Map(关联式容器)
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 出现的次数
Map(关联式容器)的更多相关文章
- STL源码分析读书笔记--第5章--关联式容器
1.关联式容器的概念 上一篇文章讲序列式容器,序列式容器的概念与关联式容器相对,不提供按序索引.它分为set和map两大类,这两大类各自有各自的衍生体multiset和multimap,的底层机制都是 ...
- 关联式容器(associative containers)
关联式容器(associative containers) 根据数据在容器中的排列特性,容器可分为序列式(sequence)和关联式(associative)两种. 标准的STL关联式容器分为set( ...
- C++ 容器:顺序性容器、关联式容器和容器适配器
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...
- 7.7 C++基本关联式容器
参考:http://www.weixueyuan.net/view/6404.html 总结: 基本的关联式容器主要有:set.multiset.map和multimap,这四种容器可以分为两组:ma ...
- STL——关联式容器
一.关联式容器 标准的STL关联式容器分为set(集合)/map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和 multimap(多键映射表).这些容器的底层机制均以RB-tre ...
- STL学习笔记--关联式容器
关联式容器依据特定的排序准则,自动为其元素排序.缺省情况下以operator<进行比较.set multiset map multimap是一种非线性的树结构,具体的说是采用一种比较高效的特殊平 ...
- C++关联式容器的排序准则
stl中set和map为关联式容器,会根据排序准将元素自动排序.原型如下: template<class _Kty, class _Pr = less<_Kty>, class _A ...
- vector是序列式容器而set是关联式容器。set包含0个或多个不重复不排序的元素。
1.vector是序列式容器而set是关联式容器.set包含0个或多个不重复不排序的元素.也就是说set能够保证它里面所有的元素都是不重复的.另外对set容器进行插入时可以指定插入位置或者不指定插入位 ...
- 面试可能遇到的关联式容器(map、set等)相关问题
>>>. map与set的区别是什么,各有哪些优势? map中存储的数据是以键值对(key - value)形式并且通过排序(比较key,默认以 '<' 方式排序)存在的( ...
随机推荐
- html 基本标签
HTML 基本标签 Web 服务器工作原理 HTML 注释 HTML 基本标签 http://192.168.32.36:8080/scan/demo.html scan 表示你的应用资源目录 HTM ...
- C++死锁解决心得
一. 概述C++多线程开发中,容易出现死锁导致程序挂起的现象.关于死锁的信息,见百度百科http://baike.baidu.com/view/121723.htm. 解决步骤分为三步:1.检测死锁线 ...
- 清风注解-Swift程序设计语言:Point11~15
目录索引 清风注解-Swift程序设计语言 Point 11. 数值型字面量 代码事例: let decimalInteger = // 十进制的17 let binaryInteger = 0b10 ...
- E=MC2 - 搜搜百科
E=MC2 - 搜搜百科 1 E=MC2 质能等价理论是爱因斯坦狭义相对论的最重要的推论,即著名的方程式E=mC^2,式中E为能量,m为质量,C为光速:也就是说,一切物质都潜藏着质量乘于光速平方的能量 ...
- 适配iPad的操作表sheet
在 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"上传文件" message:@ ...
- English - when用法
一.作为副词,它有以下的用法: 1. 作为疑问副词,引导特殊疑问句,意为“什么时候:何时”.如: ( 1 ) When will they come back?( 2 ) What time wil ...
- MSSQL数库备份与还原脚本(多个库时很方便)
每次通过 Management Studio 的界面操作备份或还原数据库,对于单个数据库还好,要是一次要做多个.那就还是用脚本快些,下面有两段脚本分享一下. ===================== ...
- javascript操作JSON对象,增加 删除 修改
JS只能输入数字,数字和字母等的正则表达式 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace( ...
- java 笔试
单例设计模式: public class Singliton { //no new private Singliton (){ } static Singliton ins = null; publi ...
- ubuntu菜单面板丢了怎么找回
我的ubuntu菜单面板丢了. 我的ubuntu用的是gnome桌面环境,桌面环境分为三个区域: 1.菜单面板 (1)三个主菜单:应用程序,位置,系统. (2)快速启动区:菜单面板中间的部分称为快 ...