我知道像set和map这样的STL容器是经过排序的,但实际上它们是如何排序的呢?底层结构是什么?
我找不到关于它的任何书籍。
我是C ++初学者,请不要判断我。 :)
答案 0 :(得分:4)
对于std::map
和std::set
,都是由实现定义的排序方式。底层数据结构应以某种方式对元素进行排序:
在内部,
map
中的元素总是按照其关键字(在其内部比较对象(比较类型)指示的特定strict weak ordering criterion之后)进行排序。
(set
也是如此。)
这些容器的典型数据结构是red black tree或binary search tree。