C++ std :: set为什么它是关联的?

Joh*_*ing 10 c++ stl set

为什么std::set定义为关联容器?

我的意思std::map是一个关联容器,因为它将一个值映射到一个键,但为什么它是一个集合?

Luc*_*ore 5

23.4.6.1 类模板集概述 [set.overview]

Aset满足 [..] 关联容器 (23.2.4) [...] 的所有要求

因为它满足成为关联容器的所有先决条件,这些先决条件在 中进行了描述23.2.4.并且不像“将键映射到值”那样简单。

第二段甚至强调了这一点(或者更确切地说,强调它实际上是map并且multimap具有比关联容器更多的功能):

23.2.4 关联容器 [associative.reqmts]

2) 每个关联容器都在 Key 和一个排序关系 Compare 上参数化,该关系在 Key 的元素上引入严格的弱排序(25.4)。此外,map 和 multimap 将任意类型 T 与 Key 相关联。Compare 类型的对象称为容器的比较对象。

整个段落太大,无法在此处复制。