YSTest: tree.h 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 命名空间 | 枚举 | 函数
tree.h 文件参考
YBaseLib » YStandardExtend

作为关联容器实现的树。 更多...

`#include "allocator.hpp"`
`#include "optional.h"`
`#include "utility.hpp"`
`#include "iterator_trait.hpp"`
`#include <algorithm>`
tree.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

class | ystdex::details::rb_tree::tree< _tKey, _type, _fKeyOfValue, _fComp, _tAlloc >
class | ystdex::details::node_handle_base< _type, _tNodeAlloc >
| 节点句柄基类。 更多...
class | ystdex::details::node_handle< _tKey, _type, _tNodeAlloc >
| 映射容器的节点句柄。 更多...
class | ystdex::details::node_handle< _type, _type, _tNodeAlloc >
| 集合容器的节点句柄。 更多...
struct | ystdex::details::node_insert_return< _tIter, _tNodeHandle >
struct | ystdex::details::rb_tree::tree_node_base
struct | ystdex::details::rb_tree::tree_key_compare< _tKeyComp >
struct | ystdex::details::rb_tree::tree_header
class | ystdex::details::rb_tree::tree_node< _type >
class | ystdex::details::rb_tree::tree< _tKey, _type, _fKeyOfValue, _fComp, _tAlloc >
class | ystdex::details::rb_tree::tree_const_iterator< _type >
class | ystdex::details::rb_tree::tree_iterator< _type >
class | ystdex::details::rb_tree::tree_const_iterator< _type >
struct | ystdex::details::rb_tree::tree_merge_helper< typename, typename >
class | ystdex::details::rb_tree::tree< _tKey, _type, _fKeyOfValue, _fComp, _tAlloc >
struct | ystdex::details::rb_tree::tree< _tKey, _type, _fKeyOfValue, _fComp, _tAlloc >::alloc_node
struct | ystdex::details::rb_tree::tree< _tKey, _type, _fKeyOfValue, _fComp, _tAlloc >::reuse_or_alloc_node
struct | ystdex::details::rb_tree::tree< _tKey, _type, _fKeyOfValue, _fComp, _tAlloc >::components< _tKeyComp >
struct | ystdex::details::rb_tree::tree_merge_helper< tree< _tKey, _type, _fKeyOfValue, _fComp1, _tAlloc >, _fComp2 >

## 命名空间

| ystdex
| `<memory>` 特性测试宏。
| ystdex::details
| ystdex::details::rb_tree

## 枚举

enum | ystdex::details::rb_tree::tree_color : bool { ystdex::details::rb_tree::tree_color::red = false, ystdex::details::rb_tree::tree_color::black = true }

## 函数

tree_node_base * | ystdex::details::rb_tree::tree_increment (tree_node_base *)
const tree_node_base * | ystdex::details::rb_tree::tree_increment (const tree_node_base *)
tree_node_base * | ystdex::details::rb_tree::tree_decrement (tree_node_base *)
const tree_node_base * | ystdex::details::rb_tree::tree_decrement (const tree_node_base *)
void | ystdex::details::rb_tree::tree_insert_and_rebalance (bool, tree_node_base *, tree_node_base *, tree_node_base &)
tree_node_base * | ystdex::details::rb_tree::tree_rebalance_for_erase (tree_node_base *, tree_node_base &)
size_t | ystdex::details::rb_tree::tree_black_count (const tree_node_base *, const tree_node_base *)

## 详细描述

作为关联容器实现的树。

版本
  r3356

作者
  FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com

自从
  build 830

创建时间:
  2018-07-06 21:15:48 +0800

修改时间:
  2020-07-17 01:25 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::Tree

关联容器的内部实现的搜索树接口。 设计和 libstdc++ 的 <bits/stl_tree.h> 中非公开接口类似，以红黑树作为内部数据结构， 可同时兼容 std::map 、 std::set 、 std::multimap 和 std::multiset 的容器。 接口支持 ISO C++17 模式下的容器功能，且支持不完整类型作为关联容器的键。 同时，提供了 ISO C++17 节点句柄(node handle) 兼容接口的基本实现。 实现语言的特性要求和 YBase.YStandardEx 要求一致。 为便于参照和测试，实现也和 libstdc++ 在 ISO C++17 模式下的相似， 但充分利用了其它 YBase.YStandardEx 特性。 因为用于内部实现，接口主要在用于实现的特定命名空间内。 除另行指定的兼容性策略外，作为实现的接口不保证对外稳定。

在文件 tree.h 中定义.