|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
红黑树容器 更多...
#include <rb_tree.hpp>
Public 类型 | |
| using | key_type = Key |
| 键类型 | |
| using | color_type = bool |
| 颜色类型 | |
| using | value_type = Value |
| 值类型 | |
| using | pointer = Value* |
| 指针类型 | |
| using | reference = Value& |
| 引用类型 | |
| using | const_pointer = const Value* |
| 常量指针类型 | |
| using | const_reference = const Value& |
| 常量引用类型 | |
| using | size_type = size_t |
| 大小类型 | |
| using | difference_type = ptrdiff_t |
| 差值类型 | |
| using | iterator = rb_tree_iterator<false, rb_tree> |
| 迭代器类型 | |
| using | const_iterator = rb_tree_iterator<true, rb_tree> |
| 常量迭代器类型 | |
| using | reverse_iterator = _NEFORCE reverse_iterator<iterator> |
| 反向迭代器类型 | |
| using | const_reverse_iterator = _NEFORCE reverse_iterator<const_iterator> |
| 常量反向迭代器类型 | |
| using | allocator_type = Alloc |
| 分配器类型 | |
Public 成员函数 | |
| rb_tree () | |
| 默认构造函数 | |
| rb_tree (const Compare &comp) | |
| 构造函数,指定比较函数 | |
| rb_tree (const rb_tree &other) | |
| 拷贝构造函数 | |
| rb_tree & | operator= (const rb_tree &other) |
| 拷贝赋值运算符 | |
| rb_tree (rb_tree &&other) noexcept(is_nothrow_move_constructible_v< Compare > &&is_nothrow_move_constructible_v< KeyOfValue > &&is_nothrow_move_constructible_v< allocator_type >) | |
| 移动构造函数 | |
| rb_tree & | operator= (rb_tree &&other) noexcept(is_nothrow_move_constructible_v< rb_tree >) |
| 移动赋值运算符 | |
| ~rb_tree () | |
| 析构函数 | |
| NEFORCE_NODISCARD iterator | begin () noexcept |
| 获取起始迭代器 | |
| NEFORCE_NODISCARD iterator | end () noexcept |
| 获取结束迭代器 | |
| NEFORCE_NODISCARD const_iterator | begin () const noexcept |
| 获取常量起始迭代器 | |
| NEFORCE_NODISCARD const_iterator | end () const noexcept |
| 获取常量结束迭代器 | |
| NEFORCE_NODISCARD const_iterator | cbegin () const noexcept |
| 获取常量起始迭代器 | |
| NEFORCE_NODISCARD const_iterator | cend () const noexcept |
| 获取常量结束迭代器 | |
| NEFORCE_NODISCARD reverse_iterator | rbegin () noexcept |
| 获取反向起始迭代器 | |
| NEFORCE_NODISCARD reverse_iterator | rend () noexcept |
| 获取反向结束迭代器 | |
| NEFORCE_NODISCARD const_reverse_iterator | rbegin () const noexcept |
| 获取常量反向起始迭代器 | |
| NEFORCE_NODISCARD const_reverse_iterator | rend () const noexcept |
| 获取常量反向结束迭代器 | |
| NEFORCE_NODISCARD const_reverse_iterator | crbegin () const noexcept |
| 获取常量反向起始迭代器 | |
| NEFORCE_NODISCARD const_reverse_iterator | crend () const noexcept |
| 获取常量反向结束迭代器 | |
| NEFORCE_NODISCARD size_type | size () const noexcept |
| 获取元素数量 | |
| NEFORCE_NODISCARD size_type | max_size () const noexcept |
| 获取最大可能大小 | |
| NEFORCE_NODISCARD bool | empty () const noexcept |
| 检查是否为空 | |
| NEFORCE_NODISCARD Compare | key_compare () const noexcept(is_nothrow_copy_constructible_v< Compare >) |
| 获取键比较函数对象 | |
| template<typename... Args> | |
| pair< iterator, bool > | emplace_unique (Args &&... args) |
| 在树中构造元素(唯一键版本) | |
| pair< iterator, bool > | insert_unique (const value_type &value) |
| 插入元素(唯一键版本) | |
| pair< iterator, bool > | insert_unique (value_type &&value) |
| 移动插入元素(唯一键版本) | |
| template<typename... Args> | |
| iterator | emplace_unique_hint (iterator position, Args &&... args) |
| 在提示位置附近构造元素(唯一键版本) | |
| iterator | insert_unique (iterator position, const value_type &value) |
| 在提示位置附近插入元素(唯一键版本) | |
| iterator | insert_unique (iterator position, value_type &&value) |
| 在提示位置附近移动插入元素(唯一键版本) | |
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> | |
| void | insert_unique (Iterator first, Iterator last) |
| 范围插入元素(唯一键版本) | |
| template<typename... Args> | |
| iterator | emplace_equal (Args &&... args) |
| 在树中构造元素(允许重复键版本) | |
| iterator | insert_equal (const value_type &value) |
| 插入元素(允许重复键版本) | |
| iterator | insert_equal (value_type &&value) |
| 移动插入元素(允许重复键版本) | |
| template<typename... Args> | |
| iterator | emplace_equal_hint (iterator position, Args &&... args) |
| 在提示位置附近构造元素(允许重复键版本) | |
| iterator | insert_equal (iterator position, const value_type &value) |
| 在提示位置附近插入元素(允许重复键版本) | |
| iterator | insert_equal (iterator position, value_type &&value) |
| 在提示位置附近移动插入元素(允许重复键版本) | |
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> | |
| void | insert_equal (Iterator first, Iterator last) |
| 范围插入元素(允许重复键版本) | |
| size_type | erase (const key_type &key) noexcept(is_nothrow_destructible_v< link_node >) |
| 删除所有具有指定键的元素 | |
| void | erase (iterator position) noexcept(is_nothrow_destructible_v< link_node >) |
| 删除指定位置的元素 | |
| void | erase (iterator first, iterator last) noexcept(is_nothrow_destructible_v< link_node >) |
| 删除指定范围内的元素 | |
| void | clear () noexcept(is_nothrow_destructible_v< link_node >) |
| 清空树 | |
| NEFORCE_NODISCARD iterator | find (const key_type &key) |
| 查找具有指定键的元素 | |
| NEFORCE_NODISCARD const_iterator | find (const key_type &key) const |
| 查找具有指定键的元素(常量版本) | |
| NEFORCE_NODISCARD size_type | count (const key_type &key) const |
| 统计具有指定键的元素数量 | |
| NEFORCE_NODISCARD iterator | lower_bound (const key_type &key) |
| 获取第一个不小于指定键的元素位置 | |
| NEFORCE_NODISCARD const_iterator | lower_bound (const key_type &key) const |
| 获取第一个不小于指定键的元素位置(常量版本) | |
| NEFORCE_NODISCARD iterator | upper_bound (const key_type &key) |
| 获取第一个大于指定键的元素位置 | |
| NEFORCE_NODISCARD const_iterator | upper_bound (const key_type &key) const |
| 获取第一个大于指定键的元素位置(常量版本) | |
| NEFORCE_NODISCARD pair< iterator, iterator > | equal_range (const key_type &key) |
| 获取等于指定键的元素范围 | |
| NEFORCE_NODISCARD pair< const_iterator, const_iterator > | equal_range (const key_type &key) const |
| 获取等于指定键的元素范围(常量版本) | |
| void | swap (rb_tree &other) noexcept(is_nothrow_swappable_v< Compare > &&is_nothrow_swappable_v< KeyOfValue > &&is_nothrow_swappable_v< allocator_type >) |
| 交换两个红黑树的内容 | |
| NEFORCE_NODISCARD bool | operator== (const rb_tree &rhs) const noexcept(noexcept(_NEFORCE equal(cbegin(), cend(), rhs.cbegin()))) |
| 相等比较操作符 | |
| NEFORCE_NODISCARD bool | operator< (const rb_tree &rhs) const noexcept(noexcept(_NEFORCE lexicographical_compare(cbegin(), cend(), rhs.cbegin(), rhs.cend()))) |
| 小于比较操作符 | |
红黑树容器
| Key | 键类型 |
| Value | 值类型 |
| KeyOfValue | 从值中提取键的函数对象 |
| Compare | 键比较函数对象 |
| Alloc | 分配器类型 |
红黑树是一种自平衡二叉搜索树,作为关联式容器的底层实现。
在文件 rb_tree.hpp 第 609 行定义.
|
inlineexplicit |
|
inlinenoexcept |
|
inlinenoexcept |
获取常量起始迭代器
在文件 rb_tree.hpp 第 1044 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::begin(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::crend(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator<() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator==().
|
inlinenoexcept |
获取常量结束迭代器
在文件 rb_tree.hpp 第 1050 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::crbegin(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::end(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::find(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator<() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator==().
|
inlinenoexcept |
获取常量反向起始迭代器
在文件 rb_tree.hpp 第 1080 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::rbegin().
|
inlinenoexcept |
获取常量反向结束迭代器
在文件 rb_tree.hpp 第 1086 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::rend().
|
inline |
在树中构造元素(允许重复键版本)
| Args | 构造参数类型 |
| args | 构造参数 |
在文件 rb_tree.hpp 第 1229 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal().
|
inline |
在提示位置附近构造元素(允许重复键版本)
| Args | 构造参数类型 |
| position | 插入位置提示 |
| args | 构造参数 |
在文件 rb_tree.hpp 第 1256 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal().
|
inline |
在树中构造元素(唯一键版本)
| Args | 构造参数类型 |
| args | 构造参数 |
在文件 rb_tree.hpp 第 1121 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique().
|
inline |
在提示位置附近构造元素(唯一键版本)
| Args | 构造参数类型 |
| position | 插入位置提示 |
| args | 构造参数 |
在文件 rb_tree.hpp 第 1148 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
获取结束迭代器
在文件 rb_tree.hpp 第 1026 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::erase(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::find() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::rbegin().
|
inline |
获取等于指定键的元素范围
| key | 键值 |
在文件 rb_tree.hpp 第 1533 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::count() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::erase().
|
inline |
|
inlinenoexcept |
删除所有具有指定键的元素
| key | 要删除的键 |
在文件 rb_tree.hpp 第 1333 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::erase() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::erase().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
|
inline |
获取第一个不小于指定键的元素位置
| key | 键值 |
在文件 rb_tree.hpp 第 1449 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::equal_range() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::equal_range().
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
获取元素数量
在文件 rb_tree.hpp 第 1092 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::emplace_equal_hint(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::emplace_unique_hint() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator==().
|
inlinenoexcept |
交换两个红黑树的内容
| other | 要交换的另一个红黑树 |
在文件 rb_tree.hpp 第 1550 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator=() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator=().
|
inline |
获取第一个大于指定键的元素位置
| key | 键值 |
在文件 rb_tree.hpp 第 1491 行定义.
被这些函数引用 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::equal_range() , 以及 rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::equal_range().
|
inline |