为什么std::set
定义为关联容器?
我的意思std::map
是一个关联容器,因为它将一个值映射到一个键,但为什么它是一个集合?
A
set
满足 [..] 关联容器 (23.2.4) [...] 的所有要求
因为它满足作为关联容器的所有先决条件,这些先决条件在“将键映射到值”中进行了描述23.2.4.
并且并不像“将键映射到值”那么简单。
第二段甚至强调了这一点(或者更确切地说,强调它实际上是map
并且multimap
比关联容器具有额外的功能):
2) 每个关联容器在 Key 和一个排序关系 Compare 上参数化,该排序关系对 Key 的元素产生严格的弱排序 (25.4)。此外,map 和 multimap 将任意类型 T 与 Key 相关联。Compare 类型的对象称为容器的比较对象。
整个段落太大,无法在此处复制。