关联容器与集合容器的深入解析
1. 关联容器概述
关联容器是强大的数据访问工具,它使用键而非索引值来访问数据。这在处理相关数据项的应用中特别有用,比如姓名和电话号码、人员和地址、组件和子组件等。
关联容器分为有序和无序两种类型。无序映射容器通常能更快地访问对象,但这依赖于键的哈希函数能在大多数情况下生成唯一的哈希值。如果哈希函数不佳,元素检索速度会变慢,因为需要更频繁地在桶中搜索匹配的键。若对键的哈希处理有疑虑,使用有序映射容器可能是更好的选择。
关联容器的一些重要特性如下:
- pair<T1,T2> 对象可以封装任意类型的两个对象。
- tuple<> 模板类型的实例可以封装任意数量的不同类型的对象。
- 所有映射容器都将键/对象对作为 pair<const K,T> 对象存储元素。
- map<K,T> 容器存储具有唯一键的元素,默认使用小于运算符按键排序,因此键类型必须支持 < 运算符,除非指定了替代的比较函数。
- multimap<K,T> 容器中的元素排序方式与 map 相同,但允许重复的键。
- 有序关联容器使用等价性来确定两个键是否相同,这意味着键的比较只能是小于或大于。当键相等时返回 true 的比较函数会导致容器无法正常工作。
- 哈希是从对象生成相对唯一整数(哈希值)的过程,用于确定元素
关联容器与集合容器深入解析
超级会员免费看
订阅专栏 解锁全文
2221

被折叠的 条评论
为什么被折叠?



