STL容器之map

Posted 阿呆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL容器之map相关的知识,希望对你有一定的参考价值。

Map是一个关联容器,它内部有两个数据,第一个(first)称为关键字(key),第二个(second)称为关键字的值(value),key与value二者是一一对应的(称为pair),且key在map中关键字是唯一的。map内部自建一颗严格意义上的平衡二叉树,对数据有排序功能,因此,map内部数据都是有排序的(less或greater)。

屏幕快照 2017-04-21 下午9.00.09

\\(maps和multimaps\\)的内部结构采用二叉平衡树来完成:
屏幕快照 2017-04-20 下午5.06.09

\\(maps和multimaps\\)根据关键字自动排序,所以根据 \\(key\\) 来查找效率比较高,根据value值来查找性能就很糟糕。同时不可以直接改变元素的 \\(key\\) ,因为这会破坏正确的次序。必须先删除拥有 \\(key\\) 的值的元素,然后插入新的\\(key/value\\)对


  • 构造函数

屏幕快照 2017-04-21 下午9.21.43


非修改性操作
屏幕快照 2017-04-21 下午9.13.46


特殊查找操作:
屏幕快照 2017-04-21 下午9.18.17


赋值操作:
屏幕快照 2017-04-21 下午10.27.07


屏幕快照 2017-04-21 下午10.37.32

在map和multimap中,所有元素的key都被视为常量,因此key的实质类型是pair<const key,T>

以上是关于STL容器之map的主要内容,如果未能解决你的问题,请参考以下文章

STL之vector容器详解

C++中STL学习笔记——容器之vector

C++中STL学习笔记——容器之vector

stl之multiset容器的应用

STL序列式容器之list

STL和泛型编程笔记之容器的分类和测试笔记