【发布时间】:2012-07-08 00:45:09
【问题描述】:
我了解我的 STL(与 g++ 4.x.x 一起提供)使用红黑树来实现地图等容器。是否可以直接使用STL内部的红黑树。如果是这样,怎么做?如果不是,为什么不——为什么 STL 不暴露红黑树?
令人惊讶的是,我无法使用谷歌找到答案。
编辑:我正在研究使用红黑树作为插入时额外分配器构造函数调用的解决方案。见this question。我的 STL 使用红黑树来实现地图。
【问题讨论】:
-
“我正在研究使用红黑树作为插入时额外分配器构造函数调用的解决方案。”一个适当的解决方案是使用不具有此属性的标准容器的实现。 C++11 需要有状态的分配器,因此任何正确支持 C++11 特性的标准库都会有更合理的行为(尽管它仍然会构造不同的分配器实例,但它只会从原始分配器对象中这样做)。跨度>
-
@Prasoon - 这里对你没有帮助,因为无论如何构造函数调用的是底层树实现。尝试比 gcc 4.1 更新的编译器是一种选择(上一个问题Custom memory allocator for STL map)
标签: c++ stl tree red-black-tree