|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
双向链表容器 更多...
#include <list.hpp>
Public 类型 | |
| using | pointer = T* |
| 指针类型 | |
| using | reference = T& |
| 引用类型 | |
| using | const_pointer = const T* |
| 常量指针类型 | |
| using | const_reference = const T& |
| 常量引用类型 | |
| using | value_type = T |
| 值类型 | |
| using | size_type = size_t |
| 大小类型 | |
| using | difference_type = ptrdiff_t |
| 差值类型 | |
| using | iterator = list_iterator<false, list> |
| 迭代器类型 | |
| using | const_iterator = list_iterator<true, list> |
| 常量迭代器类型 | |
| using | reverse_iterator = _NEFORCE reverse_iterator<iterator> |
| 反向迭代器类型 | |
| using | const_reverse_iterator = _NEFORCE reverse_iterator<const_iterator> |
| 常量反向迭代器类型 | |
| using | allocator_type = Alloc |
| 分配器类型 | |
Public 成员函数 | |
| list () | |
| 默认构造函数 | |
| list (size_type n) | |
| 构造包含n个默认构造元素的链表 | |
| list (size_type n, T &&value) | |
| 构造包含n个指定值元素的链表 | |
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> | |
| list (Iterator first, Iterator last) | |
| 范围构造函数 | |
| list (std::initializer_list< T > ilist) | |
| 初始化列表构造函数 | |
| list & | operator= (std::initializer_list< T > ilist) |
| 初始化列表赋值运算符 | |
| list (const list &other) | |
| 拷贝构造函数 | |
| list & | operator= (const list &other) |
| 拷贝赋值运算符 | |
| list (list &&other) noexcept(is_nothrow_swappable_v< compressed_pair< allocator_type, size_type > >) | |
| 移动构造函数 | |
| list & | operator= (list &&other) noexcept(is_nothrow_swappable_v< compressed_pair< allocator_type, size_type > > &&is_nothrow_destructible_v< node_type >) |
| 移动赋值运算符 | |
| ~list () | |
| 析构函数 | |
| 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 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_iterator | cbegin () const noexcept |
| 获取常量起始迭代器 | |
| NEFORCE_NODISCARD const_iterator | cend () 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 reference | front () noexcept |
| 访问第一个元素 | |
| NEFORCE_NODISCARD const_reference | front () const noexcept |
| 访问第一个常量元素 | |
| NEFORCE_NODISCARD reference | back () noexcept |
| 访问最后一个元素 | |
| NEFORCE_NODISCARD const_reference | back () const noexcept |
| 访问最后一个常量元素 | |
| template<typename... Args> | |
| iterator | emplace (iterator position, Args &&... args) |
| 在指定位置构造元素 | |
| template<typename... Args> | |
| iterator | emplace_back (Args &&... args) |
| 在末尾构造元素 | |
| template<typename... Args> | |
| iterator | emplace_front (Args &&... args) |
| 在开头构造元素 | |
| void | push_front (const T &value) |
| 在开头拷贝插入元素 | |
| void | push_front (T &&value) |
| 在开头移动插入元素 | |
| void | push_back (const T &value) |
| 在末尾拷贝插入元素 | |
| void | push_back (T &&value) |
| 在末尾移动插入元素 | |
| void | pop_front () noexcept |
| 移除开头元素 | |
| void | pop_back () noexcept |
| 移除末尾元素 | |
| void | assign (const size_type n, const T &value) |
| 赋值n个指定值的元素 | |
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> | |
| void | assign (Iterator first, Iterator last) |
| 范围赋值 | |
| void | assign (std::initializer_list< T > ilist) |
| 初始化列表赋值 | |
| iterator | insert (iterator position, const T &value) |
| 在指定位置拷贝插入元素 | |
| iterator | insert (iterator position, T &&value) |
| 在指定位置移动插入元素 | |
| template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0> | |
| void | insert (iterator position, Iterator first, Iterator last) |
| 范围插入 | |
| void | insert (iterator position, std::initializer_list< T > ilist) |
| 初始化列表插入 | |
| void | insert (iterator position, size_type n, const T &value) |
| 插入n个指定值的元素 | |
| iterator | erase (iterator position) noexcept(is_nothrow_destructible_v< node_type >) |
| 删除指定位置的元素 | |
| iterator | erase (iterator first, iterator last) noexcept(is_nothrow_destructible_v< node_type >) |
| 删除指定范围内的元素 | |
| void | clear () noexcept(is_nothrow_destructible_v< node_type >) |
| 清空链表 | |
| void | swap (list &other) noexcept(is_nothrow_swappable_v< allocator_type >) |
| 交换两个链表的内容 | |
| void | transfer (iterator position, iterator first, iterator last) |
| 传输元素 | |
| template<typename Pred> | |
| void | remove_if (Pred pred) |
| 根据谓词移除元素 | |
| void | remove (const T &value) |
| 移除指定值的元素 | |
| void | splice (iterator position, list &other) |
| 拼接整个链表 | |
| void | splice (iterator position, list &other, iterator iter) |
| 拼接单个元素 | |
| void | splice (iterator position, list &other, iterator first, iterator last) |
| 拼接范围内的元素 | |
| template<typename Pred> | |
| void | merge_if (list &other, Pred pred) |
| 合并两个有序链表 | |
| void | merge (list &other) |
| 合并两个有序链表(默认使用小于比较) | |
| void | reverse () noexcept |
| 反转链表 | |
| template<typename Pred> | |
| void | unique_if (Pred pred) noexcept |
| 移除连续的重复元素 | |
| void | unique () noexcept |
| 移除连续的重复元素(默认使用等于比较) | |
| template<typename Pred> | |
| void | sort_if (Pred pred) |
| 对链表进行排序 | |
| void | sort () |
| 对链表进行排序(默认使用小于比较) | |
| NEFORCE_NODISCARD const_reference | at (size_type position) const |
| 常量索引访问 | |
| NEFORCE_NODISCARD reference | at (size_type position) |
| 索引访问 | |
| NEFORCE_NODISCARD const_reference | operator[] (const size_type position) const |
| 常量下标访问操作符 | |
| NEFORCE_NODISCARD reference | operator[] (const size_type position) |
| 下标访问操作符 | |
| NEFORCE_NODISCARD bool | operator== (const list &rhs) const noexcept(noexcept(_NEFORCE equal(cbegin(), cend(), rhs.cbegin()))) |
| 相等比较操作符 | |
| NEFORCE_NODISCARD bool | operator< (const list &rhs) const noexcept(noexcept(_NEFORCE lexicographical_compare(cbegin(), cend(), rhs.cbegin(), rhs.cend()))) |
| 小于比较操作符 | |
双向链表容器
| T | 元素类型 |
| Alloc | 分配器类型 |
双向链表容器,提供常数时间的插入和删除操作。 不支持随机访问,但支持双向迭代。
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
常量索引访问
| position | 索引位置 |
被这些函数引用 list< pair< Key, Value > >::operator[]() , 以及 list< pair< Key, Value > >::operator[]().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
获取起始迭代器
被这些函数引用 list< pair< Key, Value > >::assign(), list< pair< Key, Value > >::assign(), list< pair< Key, Value > >::emplace_front(), deque< T, Alloc, BufSize >::insert(), max(), list< pair< Key, Value > >::merge_if(), min(), list< pair< Key, Value > >::operator=(), list< pair< Key, Value > >::pop_front(), list< pair< Key, Value > >::push_front(), list< pair< Key, Value > >::push_front(), list< pair< Key, Value > >::remove_if(), list< pair< Key, Value > >::rend(), list< pair< Key, Value > >::splice() , 以及 list< pair< Key, Value > >::unique_if().
|
inlinenoexcept |
|
inlinenoexcept |
获取常量结束迭代器
被这些函数引用 list< pair< Key, Value > >::crbegin(), list< pair< Key, Value > >::end(), list< pair< Key, Value > >::operator<() , 以及 list< pair< Key, Value > >::operator==().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
在指定位置构造元素
| Args | 构造参数类型 |
| position | 插入位置 |
| args | 构造参数 |
被这些函数引用 list< pair< Key, Value > >::emplace_back(), list< pair< Key, Value > >::emplace_front(), list< pair< Key, Value > >::insert(), list< pair< Key, Value > >::insert(), list< pair< Key, Value > >::list() , 以及 list< pair< Key, Value > >::list().
|
inlinenoexcept |
检查是否为空
被这些函数引用 list< pair< Key, Value > >::back(), list< pair< Key, Value > >::back(), list< pair< Key, Value > >::erase(), list< pair< Key, Value > >::front(), list< pair< Key, Value > >::front(), list< pair< Key, Value > >::reverse(), list< pair< Key, Value > >::sort_if(), list< pair< Key, Value > >::splice() , 以及 list< pair< Key, Value > >::unique_if().
|
inlinenoexcept |
|
inlinenoexcept |
获取结束迭代器
被这些函数引用 list< pair< Key, Value > >::emplace_back(), list< pair< Key, Value > >::erase(), deque< T, Alloc, BufSize >::insert(), list< pair< Key, Value > >::list(), list< pair< Key, Value > >::list(), max(), list< pair< Key, Value > >::merge_if(), min(), list< pair< Key, Value > >::push_back(), list< pair< Key, Value > >::push_back(), list< pair< Key, Value > >::rbegin(), list< pair< Key, Value > >::remove_if(), list< pair< Key, Value > >::splice() , 以及 list< pair< Key, Value > >::unique_if().
|
inlinenoexcept |
删除指定位置的元素
| position | 要删除的位置 |
被这些函数引用 list< pair< Key, Value > >::erase(), list< pair< Key, Value > >::pop_back(), list< pair< Key, Value > >::pop_front(), list< pair< Key, Value > >::remove_if() , 以及 list< pair< Key, Value > >::unique_if().
|
inlinenoexcept |
|
inline |
在指定位置拷贝插入元素
| position | 插入位置 |
| value | 要插入的值 |
被这些函数引用 list< pair< Key, Value > >::assign(), list< pair< Key, Value > >::assign(), list< pair< Key, Value > >::insert(), list< pair< Key, Value > >::operator=(), list< pair< Key, Value > >::push_back(), list< pair< Key, Value > >::push_back(), list< pair< Key, Value > >::push_front() , 以及 list< pair< Key, Value > >::push_front().
|
inline |
|
inline |
合并两个有序链表
| Pred | 比较谓词类型 |
| other | 要合并的链表 |
| pred | 二元比较谓词 |
将有序链表other合并到当前有序链表中,合并后仍保持有序。 使用pred作为比较准则。
被这些函数引用 list< pair< Key, Value > >::merge().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
|
inlinenoexcept |
交换两个链表的内容
| other | 要交换的另一个链表 |
被这些函数引用 list< pair< Key, Value > >::list(), list< pair< Key, Value > >::operator=() , 以及 list< pair< Key, Value > >::operator=().
|
inline |
传输元素
| position | 目标位置 |
| first | 起始迭代器 |
| last | 结束迭代器 |
将[first, last)范围内的元素从当前链表传输到position之前。 此操作为常数时间,不涉及元素构造和析构。
被这些函数引用 list< pair< Key, Value > >::merge_if(), list< pair< Key, Value > >::splice(), list< pair< Key, Value > >::splice() , 以及 list< pair< Key, Value > >::splice().
|
inlinenoexcept |
移除连续的重复元素
| Pred | 二元谓词类型 |
| pred | 用于判断两个元素是否相等的谓词 |
移除链表中所有连续重复的元素,只保留第一个。
被这些函数引用 list< pair< Key, Value > >::unique().