为什么将std::set
定义为关联容器?
我的意思是std::map
是一个关联容器,因为它将一个值映射到一个键,但为什么它是一个集合?
答案 0 :(得分:4)
set
满足[..]关联的所有要求 容器(23.2.4)[...]
因为它满足了作为关联容器的所有前提条件,这些条件在23.2.4.
中描述,并不像“将键映射到值”那么简单。
第二段甚至强调了这一点(或者更确切地说,突出显示它实际上是map
而multimap
具有关联容器的附加功能):
2)每个关联容器都在Key上进行参数化和一个排序关系比较引发一个严格的 关键元素的弱排序(25.4)。另外,map和multimap将任意类型T与之关联 钥匙。 Compare类型的对象称为容器的比较对象。
完整的段落太大而无法在此重现。
答案 1 :(得分:2)