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