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

栈容器适配器 更多...

#include <stack.hpp>

类 stack< 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
 常量引用类型

Public 成员函数

 stack ()=default
 默认构造函数
 stack (const Sequence &seq)
 构造函数,使用指定的底层容器副本
 stack (Sequence &&seq) noexcept(is_nothrow_move_constructible_v< Sequence >)
 移动构造函数,使用指定的底层容器
 ~stack ()=default
 析构函数
NEFORCE_NODISCARD size_type size () const noexcept(noexcept(seq_.size()))
 获取栈的大小
NEFORCE_NODISCARD bool empty () const noexcept(noexcept(seq_.empty()))
 检查栈是否为空
NEFORCE_NODISCARD reference top () noexcept(noexcept(seq_.back()))
 访问栈顶元素
NEFORCE_NODISCARD const_reference top () const noexcept(noexcept(seq_.back()))
 常量访问栈顶元素
template<typename... Args>
decltype(auto) emplace (Args &&... args)
 在栈顶就地构造元素
void push (const value_type &value)
 压栈操作(拷贝版本)
void push (value_type &&value)
 压栈操作(移动版本)
void pop () noexcept(noexcept(seq_.pop_back()))
 弹栈操作
void swap (stack &other) noexcept(is_nothrow_swappable_v< Sequence >)
 交换两个栈的内容
NEFORCE_NODISCARD bool operator== (const stack &rhs) const noexcept(noexcept(seq_==rhs.seq_))
 相等比较操作符
NEFORCE_NODISCARD bool operator< (const stack &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 stack< T, Sequence >

栈容器适配器

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

栈是一种容器适配器,提供后进先出的数据结构特性。 元素只能在栈顶插入和删除。支持基本的栈操作: 压栈(push)、弹栈(pop)、访问栈顶元素(top)。 默认使用deque作为底层容器,也可指定其他支持back、push_back 和pop_back操作的容器(如vector、list)。

在文件 stack.hpp35 行定义.

构造及析构函数说明

◆ stack() [1/3]

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

默认构造函数

构造一个空栈。

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

◆ stack() [2/3]

template<typename T, typename Sequence = deque<T>>
stack< T, Sequence >::stack ( const Sequence & seq)
inlineexplicit

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

参数
seq底层容器副本

在文件 stack.hpp61 行定义.

◆ stack() [3/3]

template<typename T, typename Sequence = deque<T>>
stack< T, Sequence >::stack ( Sequence && seq)
inlineexplicitnoexcept

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

参数
seq要移动的底层容器

在文件 stack.hpp68 行定义.

引用了 is_nothrow_move_constructible_v , 以及 move().

成员函数说明

◆ emplace()

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

在栈顶就地构造元素

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

在文件 stack.hpp107 行定义.

引用了 forward().

◆ empty()

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

检查栈是否为空

返回
栈为空返回true,否则返回false

在文件 stack.hpp86 行定义.

引用了 empty().

被这些函数引用 empty().

◆ operator<()

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

小于比较操作符

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

在文件 stack.hpp154 行定义.

引用了 stack().

◆ operator==()

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

相等比较操作符

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

在文件 stack.hpp145 行定义.

引用了 stack().

◆ pop()

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

弹栈操作

移除栈顶元素。

在文件 stack.hpp132 行定义.

◆ push() [1/2]

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

压栈操作(拷贝版本)

参数
value要压入的值

将元素添加到栈顶。

在文件 stack.hpp117 行定义.

◆ push() [2/2]

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

压栈操作(移动版本)

参数
value要压入的值

将元素移动到栈顶。

在文件 stack.hpp125 行定义.

引用了 move().

◆ size()

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

获取栈的大小

返回
栈中的元素数量

在文件 stack.hpp80 行定义.

引用了 size().

被这些函数引用 size().

◆ swap()

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

交换两个栈的内容

参数
other要交换的另一个栈

在文件 stack.hpp138 行定义.

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

被这些函数引用 swap().

◆ top() [1/2]

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

常量访问栈顶元素

返回
栈顶元素的常量引用

在文件 stack.hpp98 行定义.

◆ top() [2/2]

template<typename T, typename Sequence = deque<T>>
NEFORCE_NODISCARD reference stack< T, Sequence >::top ( )
inlinenoexcept

访问栈顶元素

返回
栈顶元素的引用

在文件 stack.hpp92 行定义.


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