|
| | 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_)) |
| | 小于比较操作符
|
| NEFORCE_NODISCARD constexpr decltype(auto) | size () const noexcept(noexcept(derived().size())) |
| | 获取集合大小
|
| NEFORCE_NODISCARD constexpr bool | empty () const noexcept(noexcept(derived().empty())) |
| | 检查集合是否为空
|
| 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.hpp 第 35 行定义.