Tob*_*oby -5 c++ stl list multiset data-structures
在 C++ 中:
列表是可以按顺序包含非唯一值的集合
多重集是一个可以按顺序包含非唯一元素的集合
那么两者的具体区别是什么呢?为什么我会在另一个上使用?
我曾尝试在网上查找此信息,但大多数参考资料(例如 cplusplus.com)以不同的方式谈论这两个容器,因此差异并不明显。
最大的区别是std::list
链表,std::multiset
而是树结构(通常是 RB 树)。这意味着 a 中的元素访问std::list
has O(N)
access 而 a std::multiset
has O(logN)
。
这也意味着一个迭代std::multiset
从begin()
到end()
会给你整理数据,而迭代一个std::list
会给你的数据被插入的顺序。