|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
稀疏映射容器 更多...
#include <sparse_map.hpp>
类 | |
| struct | value_compare |
| 值比较函数对象 更多... | |
Public 类型 | |
| using | key_type = Key |
| 键类型 | |
| using | data_type = T |
| 数据类型 | |
| using | mapped_type = T |
| 映射值类型 | |
| using | value_type = pair<Key, T> |
| 值类型 | |
| using | key_compare = Compare |
| 键比较函数类型 | |
| using | size_type = typename base_type::size_type |
| 大小类型 | |
| using | difference_type = typename base_type::difference_type |
| 差值类型 | |
| using | pointer = typename base_type::pointer |
| 指针类型 | |
| using | const_pointer = typename base_type::const_pointer |
| 常量指针类型 | |
| using | reference = typename base_type::reference |
| 引用类型 | |
| using | const_reference = typename base_type::const_reference |
| 常量引用类型 | |
| using | iterator = typename base_type::iterator |
| 迭代器类型 | |
| using | const_iterator = typename base_type::const_iterator |
| 常量迭代器类型 | |
| using | reverse_iterator = typename base_type::reverse_iterator |
| 反向迭代器类型 | |
| using | const_reverse_iterator = typename base_type::const_reverse_iterator |
| 常量反向迭代器类型 | |
| using | allocator_type = typename base_type::allocator_type |
| 分配器类型 | |
Public 成员函数 | |
| sparse_map () | |
| 默认构造函数 | |
| sparse_map (const key_compare &comp) | |
| 构造函数,指定比较函数 | |
| sparse_map (const sparse_map &other) | |
| 拷贝构造函数 | |
| sparse_map & | operator= (const sparse_map &other) |
| 拷贝赋值运算符 | |
| sparse_map (sparse_map &&other) noexcept(is_nothrow_move_constructible_v< base_type >) | |
| 移动构造函数 | |
| sparse_map & | operator= (sparse_map &&other) noexcept(is_nothrow_move_assignable_v< base_type >) |
| 移动赋值运算符 | |
| template<typename Iterator> | |
| sparse_map (Iterator first, Iterator last) | |
| 范围构造函数 | |
| template<typename Iterator> | |
| sparse_map (Iterator first, Iterator last, const key_compare &comp) | |
| 范围构造函数,指定比较函数 | |
| sparse_map (std::initializer_list< value_type > ilist) | |
| 初始化列表构造函数 | |
| sparse_map (std::initializer_list< value_type > ilist, const key_compare &comp) | |
| 初始化列表构造函数,指定比较函数 | |
| sparse_map & | operator= (std::initializer_list< value_type > ilist) |
| 初始化列表赋值运算符 | |
| ~sparse_map ()=default | |
| 析构函数 | |
| iterator | begin () noexcept |
| 获取起始迭代器 | |
| iterator | end () noexcept |
| 获取结束迭代器 | |
| const_iterator | begin () const noexcept |
| 获取常量起始迭代器 | |
| const_iterator | end () const noexcept |
| 获取常量结束迭代器 | |
| const_iterator | cbegin () const noexcept |
| 获取常量起始迭代器 | |
| const_iterator | cend () const noexcept |
| 获取常量结束迭代器 | |
| reverse_iterator | rbegin () noexcept |
| 获取反向起始迭代器 | |
| reverse_iterator | rend () noexcept |
| 获取反向结束迭代器 | |
| const_reverse_iterator | rbegin () const noexcept |
| 获取常量反向起始迭代器 | |
| const_reverse_iterator | rend () const noexcept |
| 获取常量反向结束迭代器 | |
| const_reverse_iterator | crbegin () const noexcept |
| 获取常量反向起始迭代器 | |
| const_reverse_iterator | crend () const noexcept |
| 获取常量反向结束迭代器 | |
| size_type | size () const noexcept |
| 获取元素数量 | |
| size_type | max_size () const noexcept |
| 获取最大可能大小 | |
| bool | empty () const noexcept |
| 检查是否为空 | |
| key_compare | key_comp () const noexcept |
| 获取键比较函数对象 | |
| value_compare | value_comp () const noexcept |
| 获取值比较函数对象 | |
| template<typename... Args> | |
| pair< iterator, bool > | emplace (Args &&... args) |
| 构造元素 | |
| pair< iterator, bool > | insert (const value_type &value) |
| 拷贝插入元素 | |
| pair< iterator, bool > | insert (value_type &&value) |
| 移动插入元素 | |
| template<typename... Args> | |
| iterator | emplace_hint (iterator position, Args &&... args) |
| 在提示位置附近就地构造元素 | |
| iterator | insert (iterator position, const value_type &value) |
| 在提示位置附近拷贝插入元素 | |
| iterator | insert (iterator position, value_type &&value) |
| 在提示位置附近移动插入元素 | |
| template<typename Iterator> | |
| void | insert (Iterator first, Iterator last) |
| 范围插入元素 | |
| void | erase (iterator position) noexcept(noexcept(data_.erase(position))) |
| 删除指定位置的元素 | |
| size_type | erase (const key_type &key) noexcept(noexcept(data_.erase(key))) |
| 删除所有具有指定键的元素 | |
| void | erase (iterator first, iterator last) noexcept(noexcept(data_.erase(first, last))) |
| 删除指定范围内的元素 | |
| void | clear () noexcept(noexcept(data_.clear())) |
| 清空sparse_map | |
| iterator | find (const key_type &key) |
| 查找具有指定键的元素 | |
| const_iterator | find (const key_type &key) const |
| 常量查找具有指定键的元素 | |
| size_type | count (const key_type &key) const |
| 统计具有指定键的元素数量 | |
| iterator | lower_bound (const key_type &key) |
| 获取第一个不小于指定键的元素位置 | |
| const_iterator | lower_bound (const key_type &key) const |
| 获取第一个不小于指定键的常量元素位置 | |
| iterator | upper_bound (const key_type &key) |
| 获取第一个大于指定键的元素位置 | |
| const_iterator | upper_bound (const key_type &key) const |
| 获取第一个大于指定键的常量元素位置 | |
| pair< iterator, iterator > | equal_range (const key_type &key) |
| 获取等于指定键的元素范围 | |
| pair< const_iterator, const_iterator > | equal_range (const key_type &key) const |
| 获取等于指定键的常量元素范围 | |
| mapped_type & | operator[] (const key_type &key) |
| 下标访问操作符 | |
| mapped_type & | operator[] (key_type &&key) |
| 右值键下标访问操作符 | |
| const mapped_type & | at (const key_type &key) const |
| 带边界检查的常量访问 | |
| mapped_type & | at (const key_type &key) |
| 带边界检查的访问 | |
| void | reserve (size_type n) |
| 预留容量 | |
| size_type | capacity () const noexcept |
| 获取当前容量 | |
| void | shrink_to_fit () |
| 收缩容量以适应实际大小 | |
| void | swap (sparse_map &other) noexcept(noexcept(data_.swap(other.data_))) |
| 交换两个sparse_map的内容 | |
| bool | equal_to (const sparse_map &rhs) const noexcept(noexcept(data_==rhs.data_)) |
| 相等比较操作符 | |
| bool | less_than (const sparse_map &rhs) const noexcept(noexcept(data_< rhs.data_)) |
| 小于比较操作符 | |
稀疏映射容器
| Key | 键类型 |
| T | 值类型 |
| Compare | 键比较函数类型,默认为less<Key> |
| Alloc | 分配器类型 |
sparse_map是一种关联容器,存储键值对(key-value pairs),每个键在容器中唯一。 元素按照键的顺序自动排序,排序标准由Compare函数对象指定。 底层使用有序平坦数组实现,查找O(log n),迭代缓存友好。
在文件 sparse_map.hpp 第 41 行定义.
|
inline |
默认构造函数
构造一个空sparse_map,使用默认的比较函数。
在文件 sparse_map.hpp 第 104 行定义.
被这些函数引用 equal_to(), less_than(), operator=(), operator=(), operator=(), sparse_map(), sparse_map(), sparse_map(), sparse_map() , 以及 swap().
|
inlineexplicit |
|
inline |
|
inlinenoexcept |
移动构造函数
| other | 源sparse_map |
在文件 sparse_map.hpp 第 138 行定义.
引用了 neforce::is_nothrow_move_constructible_v, neforce::move() , 以及 sparse_map().
|
inline |
|
inline |
|
inline |
|
inline |
初始化列表构造函数,指定比较函数
| ilist | 初始化列表 |
| comp | 比较函数对象 |
在文件 sparse_map.hpp 第 191 行定义.
引用了 begin(), end() , 以及 sparse_map().
|
inlinenodiscard |
带边界检查的访问
| key | 要访问的键 |
| value_exception | 如果键不存在 |
在文件 sparse_map.hpp 第 518 行定义.
引用了 end() , 以及 key_comp().
|
inlinenodiscard |
带边界检查的常量访问
| key | 要访问的键 |
| value_exception | 如果键不存在 |
在文件 sparse_map.hpp 第 504 行定义.
引用了 end() , 以及 key_comp().
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscard |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inline |
构造元素
| Args | 构造参数类型 |
| args | 构造参数 |
在文件 sparse_map.hpp 第 319 行定义.
引用了 neforce::forward().
|
inline |
在提示位置附近就地构造元素
| Args | 构造参数类型 |
| position | 插入位置提示 |
| args | 构造参数 |
在文件 sparse_map.hpp 第 345 行定义.
引用了 neforce::forward().
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
获取结束迭代器
在文件 sparse_map.hpp 第 220 行定义.
被这些函数引用 at(), at(), operator[](), operator[](), sparse_map() , 以及 sparse_map().
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscardnoexcept |
相等比较操作符
| rhs | 右侧sparse_map |
在文件 sparse_map.hpp 第 554 行定义.
引用了 sparse_map().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenodiscard |
|
inlinenodiscard |
|
inline |
|
inline |
|
inline |
|
inline |
在提示位置附近移动插入元素
| position | 插入位置提示 |
| value | 要插入的值 |
在文件 sparse_map.hpp 第 363 行定义.
引用了 neforce::move().
|
inline |
|
inlinenodiscardnoexcept |
获取键比较函数对象
在文件 sparse_map.hpp 第 304 行定义.
被这些函数引用 at(), at(), operator[]() , 以及 operator[]().
|
inlinenodiscardnoexcept |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscardnoexcept |
|
inline |
拷贝赋值运算符
| other | 源sparse_map |
在文件 sparse_map.hpp 第 126 行定义.
引用了 neforce::addressof() , 以及 sparse_map().
|
inlinenoexcept |
移动赋值运算符
| other | 源sparse_map |
在文件 sparse_map.hpp 第 146 行定义.
引用了 neforce::addressof(), neforce::is_nothrow_move_assignable_v, neforce::move() , 以及 sparse_map().
|
inline |
初始化列表赋值运算符
| ilist | 初始化列表 |
在文件 sparse_map.hpp 第 199 行定义.
引用了 clear(), insert() , 以及 sparse_map().
|
inlinenodiscard |
下标访问操作符
| key | 要访问的键 |
如果键不存在,则插入一个默认构造的值并返回其引用。
在文件 sparse_map.hpp 第 475 行定义.
引用了 end(), neforce::initialize() , 以及 key_comp().
|
inlinenodiscard |
右值键下标访问操作符
| key | 要访问的键 |
如果键不存在,则插入一个默认构造的值并返回其引用。
在文件 sparse_map.hpp 第 490 行定义.
引用了 end(), neforce::initialize(), key_comp() , 以及 neforce::move().
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inline |
|
inlinenodiscardnoexcept |
|
inlinenoexcept |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscardnoexcept |