STL设置了什么样的树实现?

Inv*_*tus 3 c++ tree data-structures

我知道在STL中vector表示动态数组的实现.那么它list代表链表的实现(双链表).我知道它set有一个类似于树的实现.查看算法复杂性,如上所述,集合中的大多数内置函数具有复杂度o(1)o(log n).因此,这棵树实现为平衡树或任何其他类型的树,例如红黑树,如果是,为什么选择这样的树结构?

Oli*_*rth 10

该标准对实施没有任何限制(复杂性保证除外).

换句话说,它依赖于实现.通常,它是一棵红黑树(例如/usr/include/c++/x.y.z/bits/stl_tree.h,x.y.z您的特定GCC版本在哪里).

  • 在C++标准的上下文中,"依赖于实现"意味着由编译器/库供应商决定如何实现它.它与您编写库使用代码@Ritesh的方式无关. (2认同)