The Wayback Machine - https://web.archive.org/web/20200225064352/https://en.cppreference.com/w/cpp/header/stack
Namespaces
Variants
Actions

Standard library header <stack>

From cppreference.com
< cpp‎ | header
 
 
 

This header is part of the containers library.

Contents

Includes

<initializer_list>(C++11)

Classes

adapts a container to provide stack (LIFO data structure)
(class template)[edit]
specializes the std::uses_allocator type trait
(function template)[edit]

Functions

(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(C++20)
lexicographically compares the values in the stack
(function template)[edit]
specializes the std::swap algorithm
(function template)[edit]

[edit]Synopsis

#include <initializer_list>   namespace std {template<class T, class Container = deque<T>>class stack;   template<class T, class Container>bool operator==(const stack<T, Container>& x,const stack<T, Container>& y);template<class T, class Container>bool operator!=(const stack<T, Container>& x,const stack<T, Container>& y);   template<class T, class Container>bool operator<(const stack<T, Container>& x,const stack<T, Container>& y);template<class T, class Container>bool operator>(const stack<T, Container>& x,const stack<T, Container>& y);template<class T, class Container>bool operator>=(const stack<T, Container>& x,const stack<T, Container>& y);template<class T, class Container>bool operator<=(const stack<T, Container>& x,const stack<T, Container>& y);   template<class T, class Container>void swap(stack<T, Container>& x, stack<T, Container>& y)noexcept(noexcept(x.swap(y)));   template<class T, class Container, class Alloc>struct uses_allocator<stack<T, Container>, Alloc>: uses_allocator<Container, Alloc>::type{};}

[edit]Class std::stack

template<class T, class Container =std::deque<T>>class stack {public:typedeftypename Container::value_type value_type;typedeftypename Container::reference reference;typedeftypename Container::const_reference const_reference;typedeftypename Container::size_type size_type;typedef Container container_type;   protected: Container c;   public:explicit stack(const Container&);explicit stack(Container&&= Container());template<class Alloc>explicit stack(const Alloc&);template<class Alloc> stack(const Container&, const Alloc&);template<class Alloc> stack(Container&&, const Alloc&);template<class Alloc> stack(const stack&, const Alloc&);template<class Alloc> stack(stack&&, const Alloc&);   bool empty()const{return c.empty();} size_type size()const{return c.size();} reference top(){return c.back();} const_reference top()const{return c.back();}void push(const value_type& x){ c.push_back(x);}void push(value_type&& x){ c.push_back(std::move(x));}template<class... Args>void emplace(Args&&... args){ c.emplace_back(std::forward<Args>(args)...);}void pop(){ c.pop_back();}void swap(stack& s)noexcept(noexcept(swap(c, s.c))){usingstd::swap; swap(c, s.c);}};
close