C++ 缺少boost AVL树的合并和拆分?

C++ 缺少boost AVL树的合并和拆分?,c++,data-structures,boost,avl-tree,intrusive-containers,C++,Data Structures,Boost,Avl Tree,Intrusive Containers,Boost提供了底层二进制搜索树(BST)的位置,可以选择它作为AVL树 一个(可能是最关键的一个)原因,为什么人们更喜欢AVL树而不是红黑树,是复杂的O(logN)操作的merge和split。然而,令我惊讶的是,boost::container似乎没有提供这些操作。将merge描述为O(NlogN)复杂性的元素操作(这与基础BST实现无关!),文档甚至没有提到拆分 关于合并,我不能说,但是对于拆分,我可以假设缺少它可能是因为时间常数大小问题,因此复杂度O(logN)的拆分可能不知道两个结果部

Boost提供了底层二进制搜索树(BST)的位置,可以选择它作为AVL树

一个(可能是最关键的一个)原因,为什么人们更喜欢AVL树而不是红黑树,是复杂的
O(logN)
操作的
merge
split
。然而,令我惊讶的是,
boost::container
似乎没有提供这些操作。将
merge
描述为
O(NlogN)
复杂性的元素操作(这与基础BST实现无关!),文档甚至没有提到
拆分

关于
合并
,我不能说,但是对于
拆分
,我可以假设缺少它可能是因为时间常数
大小
问题,因此复杂度
O(logN)
拆分
可能不知道两个结果部分的大小。但这可以通过使用侵入式容器和每个节点的子树节点计数来修复

还有,但是我在中找不到AVL
merge
split
算法

所以问题是

  • 是否有一个功能齐全、基于AVL的
    set/map/multiset/multimap
    实现,提供
    merge
    split
    操作,其复杂性为
    O(logN)
  • 如果没有,如何使用
    boost::intrusive::avl_set
    构建一个
  • 这可能会引起人们的兴趣