NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
queue< T, Sequence > 模板类 参考

队列容器适配器 更多...

#include <queue.hpp>

类 queue< T, Sequence > 继承关系图:
[图例]

Public 类型

using value_type = typename Sequence::value_type
 值类型
using difference_type = typename Sequence::difference_type
 差值类型
using size_type = typename Sequence::size_type
 大小类型
using reference = typename Sequence::reference
 引用类型
using const_reference = typename Sequence::const_reference
 常量引用类型
using iterator = typename Sequence::iterator
 迭代器类型
using const_iterator = typename Sequence::const_iterator
 常量迭代器类型

Public 成员函数

 queue ()=default
 默认构造函数
 queue (const Sequence &other)
 构造函数,使用指定的底层容器副本
 queue (Sequence &&other) noexcept(is_nothrow_move_constructible_v< Sequence >)
 移动构造函数,使用指定的底层容器
 ~queue ()=default
 析构函数
NEFORCE_NODISCARD size_type size () const noexcept(noexcept(seq_.size()))
 获取队列大小
NEFORCE_NODISCARD bool empty () const noexcept(noexcept(seq_.empty()))
 检查队列是否为空
NEFORCE_NODISCARD reference front () noexcept(noexcept(seq_.front()))
 访问队首元素
NEFORCE_NODISCARD const_reference front () const noexcept(noexcept(seq_.front()))
 常量版本,访问队首元素
NEFORCE_NODISCARD reference back () noexcept(noexcept(seq_.back()))
 访问队尾元素
NEFORCE_NODISCARD const_reference back () const noexcept(noexcept(seq_.back()))
 常量版本,访问队尾元素
NEFORCE_NODISCARD iterator begin () noexcept(noexcept(seq_.begin()))
 获取起始迭代器
NEFORCE_NODISCARD iterator end () noexcept(noexcept(seq_.end()))
 获取结束迭代器
NEFORCE_NODISCARD const_iterator begin () const noexcept(noexcept(seq_.begin()))
 获取常量起始迭代器
NEFORCE_NODISCARD const_iterator end () const noexcept(noexcept(seq_.end()))
 获取常量结束迭代器
NEFORCE_NODISCARD const_iterator cbegin () const noexcept(noexcept(seq_.cbegin()))
 获取常量起始迭代器
NEFORCE_NODISCARD const_iterator cend () const noexcept(noexcept(seq_.cend()))
 获取常量结束迭代器
void push (const T &value)
 入队操作(拷贝版本)
void push (T &&value)
 入队操作(移动版本)
void pop () noexcept(noexcept(seq_.pop_front()))
 出队操作
template<typename... Args>
decltype(auto) emplace (Args &&... args)
 在队尾就地构造元素
void swap (queue &other) noexcept(is_nothrow_swappable_v< Sequence >)
 交换两个队列的内容
NEFORCE_NODISCARD bool operator== (const queue &rhs) const noexcept(noexcept(seq_==rhs.seq_))
 相等比较操作符
NEFORCE_NODISCARD bool operator< (const queue &rhs) const noexcept(noexcept(seq_< rhs.seq_))
 小于比较操作符
Public 成员函数 继承自 icollector< T >
NEFORCE_NODISCARD constexpr decltype(auto) size () const noexcept(noexcept(derived().size()))
 获取集合大小
NEFORCE_NODISCARD constexpr bool empty () const noexcept(noexcept(derived().empty()))
 检查集合是否为空
Public 成员函数 继承自 icomparable< T >
NEFORCE_NODISCARD constexpr bool operator== (const T &rhs) const noexcept(noexcept(derived()==rhs))
 相等比较运算符
NEFORCE_NODISCARD constexpr bool operator!= (const T &rhs) const noexcept(noexcept(!(*this==rhs)))
 不等比较运算符
NEFORCE_NODISCARD constexpr bool operator< (const T &rhs) const noexcept(noexcept(derived()< rhs))
 小于比较运算符
NEFORCE_NODISCARD constexpr bool operator> (const T &rhs) const noexcept(noexcept(rhs< derived()))
 大于比较运算符
NEFORCE_NODISCARD constexpr bool operator<= (const T &rhs) const noexcept(noexcept(!(derived() > rhs)))
 小于等于比较运算符
NEFORCE_NODISCARD constexpr bool operator>= (const T &rhs) const noexcept(noexcept(!(derived()< rhs)))
 大于等于比较运算符

详细描述

template<typename T, typename Sequence = deque<T>>
class queue< T, Sequence >

队列容器适配器

模板参数
T元素类型
Sequence底层容器类型,默认为deque<T>

队列是一种容器适配器,提供先进先出的数据结构特性。 元素只能在队尾插入,在队首删除。支持基本的队列操作: 入队(push)、出队(pop)、访问队首(front)和队尾(back)元素。

默认使用deque作为底层容器,也可指定其他支持front、back、 push_back和pop_front操作的容器(如list)。

在文件 queue.hpp36 行定义.

构造及析构函数说明

◆ queue() [1/3]

template<typename T, typename Sequence = deque<T>>
queue< T, Sequence >::queue ( )
default

默认构造函数

构造一个空队列。

被这些函数引用 operator<(), operator==() , 以及 swap().

◆ queue() [2/3]

template<typename T, typename Sequence = deque<T>>
queue< T, Sequence >::queue ( const Sequence & other)
inlineexplicit

构造函数,使用指定的底层容器副本

参数
other底层容器副本

在文件 queue.hpp64 行定义.

◆ queue() [3/3]

template<typename T, typename Sequence = deque<T>>
queue< T, Sequence >::queue ( Sequence && other)
inlineexplicitnoexcept

移动构造函数,使用指定的底层容器

参数
other要移动的底层容器

在文件 queue.hpp71 行定义.

引用了 is_nothrow_move_constructible_v , 以及 move().

成员函数说明

◆ back() [1/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD const_reference queue< T, Sequence >::back ( ) const
inlinenoexcept

常量版本,访问队尾元素

返回
队尾元素的常量引用

在文件 queue.hpp113 行定义.

引用了 back().

◆ back() [2/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD reference queue< T, Sequence >::back ( )
inlinenoexcept

访问队尾元素

返回
队尾元素的引用

在文件 queue.hpp107 行定义.

引用了 back().

被这些函数引用 back() , 以及 back().

◆ begin() [1/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD const_iterator queue< T, Sequence >::begin ( ) const
inlinenoexcept

获取常量起始迭代器

返回
指向队首的常量迭代器

在文件 queue.hpp131 行定义.

引用了 begin().

◆ begin() [2/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD iterator queue< T, Sequence >::begin ( )
inlinenoexcept

获取起始迭代器

返回
指向队首的迭代器

在文件 queue.hpp119 行定义.

引用了 begin().

被这些函数引用 begin() , 以及 begin().

◆ cbegin()

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD const_iterator queue< T, Sequence >::cbegin ( ) const
inlinenoexcept

获取常量起始迭代器

返回
指向队首的常量迭代器

在文件 queue.hpp143 行定义.

引用了 cbegin().

被这些函数引用 cbegin().

◆ cend()

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD const_iterator queue< T, Sequence >::cend ( ) const
inlinenoexcept

获取常量结束迭代器

返回
指向队尾之后位置的常量迭代器

在文件 queue.hpp149 行定义.

引用了 cend().

被这些函数引用 cend().

◆ emplace()

template<typename T, typename Sequence = deque<T>>
template<typename... Args>
decltype(auto) queue< T, Sequence >::emplace ( Args &&... args)
inline

在队尾就地构造元素

模板参数
Args构造参数类型
参数
args构造参数
返回
新构造元素的引用

在文件 queue.hpp181 行定义.

引用了 forward().

◆ empty()

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD bool queue< T, Sequence >::empty ( ) const
inlinenoexcept

检查队列是否为空

返回
队列为空返回true,否则返回false

在文件 queue.hpp89 行定义.

引用了 empty().

被这些函数引用 empty().

◆ end() [1/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD const_iterator queue< T, Sequence >::end ( ) const
inlinenoexcept

获取常量结束迭代器

返回
指向队尾之后位置的常量迭代器

在文件 queue.hpp137 行定义.

引用了 end().

◆ end() [2/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD iterator queue< T, Sequence >::end ( )
inlinenoexcept

获取结束迭代器

返回
指向队尾之后位置的迭代器

在文件 queue.hpp125 行定义.

引用了 end().

被这些函数引用 end() , 以及 end().

◆ front() [1/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD const_reference queue< T, Sequence >::front ( ) const
inlinenoexcept

常量版本,访问队首元素

返回
队首元素的常量引用

在文件 queue.hpp101 行定义.

引用了 front().

◆ front() [2/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD reference queue< T, Sequence >::front ( )
inlinenoexcept

访问队首元素

返回
队首元素的引用

在文件 queue.hpp95 行定义.

引用了 front().

被这些函数引用 front() , 以及 front().

◆ operator<()

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD bool queue< T, Sequence >::operator< ( const queue< T, Sequence > & rhs) const
inlinenoexcept

小于比较操作符

参数
rhs右侧队列
返回
按字典序比较结果

在文件 queue.hpp205 行定义.

引用了 queue().

◆ operator==()

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD bool queue< T, Sequence >::operator== ( const queue< T, Sequence > & rhs) const
inlinenoexcept

相等比较操作符

参数
rhs右侧队列
返回
如果两个队列大小相等且对应元素相等返回true

在文件 queue.hpp196 行定义.

引用了 queue().

◆ pop()

template<typename T, typename Sequence = deque<T>>
void queue< T, Sequence >::pop ( )
inlinenoexcept

出队操作

移除队首元素。

在文件 queue.hpp172 行定义.

◆ push() [1/2]

template<typename T, typename Sequence = deque<T>>
void queue< T, Sequence >::push ( const T & value)
inline

入队操作(拷贝版本)

参数
value要插入的值

将元素添加到队尾。

在文件 queue.hpp157 行定义.

◆ push() [2/2]

template<typename T, typename Sequence = deque<T>>
void queue< T, Sequence >::push ( T && value)
inline

入队操作(移动版本)

参数
value要插入的值

将元素移动到队尾。

在文件 queue.hpp165 行定义.

引用了 move().

◆ size()

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD size_type queue< T, Sequence >::size ( ) const
inlinenoexcept

获取队列大小

返回
队列中的元素数量

在文件 queue.hpp83 行定义.

引用了 size().

被这些函数引用 size().

◆ swap()

template<typename T, typename Sequence = deque<T>>
void queue< T, Sequence >::swap ( queue< T, Sequence > & other)
inlinenoexcept

交换两个队列的内容

参数
other要交换的另一个队列

在文件 queue.hpp189 行定义.

引用了 is_nothrow_swappable_v, queue() , 以及 swap().

被这些函数引用 swap().


该类的文档由以下文件生成: