【发布时间】:2021-01-03 15:21:28
【问题描述】:
为什么multiset是一个set,而一个set只能包含不同的元素,而multiset可以包含相同的元素?它可以被称为sortedArray 或sortedList。即使它只是想要一个排序的“集合”,为什么它是一个集合?
【问题讨论】:
-
因为计算机科学家喜欢滥用数学术语。另一个例子是调用模数运算符 %。
-
询问向 C++ 标准委员会提出建议的人。
-
Compare. Search, insertion, and removal operations have logarithmic complexity.,你不会从
sortedArray得到那个 -
Multiset 不是集合,它是多重集,它模拟了多重集的数学概念:en.wikipedia.org/wiki/Multiset。
-
FWIW、
sortedArray和sortedList不传达相同的保证。数组具有多重集没有的连续存储,虽然可以对列表进行二进制搜索,但您仍然有线性时间,因为您无法随机访问列表中的节点。