第十一章:关联容器
2015-07-15 16:13
211 查看
关联容器
关联容器支持高效率的关键字查找和访问。关联容器和顺序容器的本质差别在于:关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素。
关联容器(associative-container) :两个主要关联容器:map 和 set
map 的元素以键-值(key-value)对的形式组织:键用作元素在 map 中的索引,而值则表示所存储和读取的数据。set 仅包含一个键,并有效地支持关于某个键是否存在的查询。
一般来说,如果希望有效地存储不同值的集合,那么使用 set 容器比较合适,而 map 容器则更适用于需要存储(乃至修改)每个键所关联的值的情况。在做某种文本处理时,可使用 set 保存要忽略的单词。而字典则是 map 的一种很好的应用:单词本身是键,而它的解释说明则是值。
set 和 map 类型的对象所包含的元素都具有不同的键,不允许为同一个键添加第二个元素。如果一个键必须对应多个实例,则需使用 multimap 或 multi set,这两种类型允许多个元素拥有相同的键。
“关联容器元素根据键的次序排列”这一事实就是一个重要的结论:在迭代遍历关联容器时,我们可确保按键的顺序的访问元素,而与元素在容器中的存放位置完全无关。
map类型
map 是键-值对的集合。map 类型通常可理解为关联数组(associative array):可使用键作为下标来获取一个值,正如内置数组类型一样。而关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置来获取。set 类型
当只想知道一个值是否存在时,使用 set 容器是最适合的。两种例外包括:set 不支持下标操作符,而且没有定义 mapped_type 类型。在 set 容器中,value_type 不是 pair 类型,而是与 key_type 相同的类型。它们指的都是 set 中存储的元素类型。这一差别也体现了 set 存储的元素仅仅是键,而没有所关联的值。与 map 一样,set 容器存储的键也必须唯一,而且不能修改。
参考博客
相关文章推荐
- 使用sshfs挂载时自动输入密码
- Map.get方法——返回指定键所映射的值
- 第四个selenium-radiobutton
- java基础之 创建对象的几种方式
- charles使用教程指南
- 关于listview 多项删除
- java高保真高性能图片缩放编码
- java高保真高性能图片缩放编码
- 探秘TCP数据包中的PSH标志
- GPU并行编程方法
- 输入法相关问题记录
- 设置TextView文字居中
- 学习笔记:Twitter核心数据类库团队的Hadoop优化经验
- LayoutInflater的inflate函数用法详解
- 11G新特性 -- 块介质恢复性能增强(block media recovery)
- leetcode 035 —— Search Insert Position
- 一次非常有意思的sql优化经历
- 自定义标签拦截及实现
- 对象间的联动——观察者模式(Observer Pattern)
- Pazera Free Audio Extractor 中文版 - 轻松将视频背景音乐/对话音频提取出来的免费软件