Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/container/stack"

From cppreference.com
< cpp‎ | container
m (Shorten template names. Use {{lc}} where appropriate.)
m (Update links.)
Line 27: Line 27:
 
{{dsc begin}}
 
{{dsc begin}}
 
{{dsc hitem | Member type | Definition}}
 
{{dsc hitem | Member type | Definition}}
{{dsc inc | cpp/container/dcl list container_type | stack}}
+
{{dsc inc | cpp/container/dsc container_type | stack}}
{{dsc inc | cpp/container/dcl list value_type | stack}}
+
{{dsc inc | cpp/container/dsc value_type | stack}}
{{dsc inc | cpp/container/dcl list size_type | stack}}
+
{{dsc inc | cpp/container/dsc size_type | stack}}
{{dsc inc | cpp/container/dcl list reference | stack}}
+
{{dsc inc | cpp/container/dsc reference | stack}}
{{dsc inc | cpp/container/dcl list const_reference | stack}}
+
{{dsc inc | cpp/container/dsc const_reference | stack}}
 
{{dsc end}}
 
{{dsc end}}
  
 
===Member functions===
 
===Member functions===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/container/dcl list constructor | stack}}
+
{{dsc inc | cpp/container/dsc constructor | stack}}
{{dsc inc | cpp/container/dcl list destructor | stack}}
+
{{dsc inc | cpp/container/dsc destructor | stack}}
{{dsc inc | cpp/container/dcl list operator{{=}} | stack}}
+
{{dsc inc | cpp/container/dsc operator{{=}} | stack}}
  
 
{{dsc h2 | Element access}}
 
{{dsc h2 | Element access}}
{{dsc inc | cpp/container/dcl list top | stack}}
+
{{dsc inc | cpp/container/dsc top | stack}}
  
 
{{dsc h2 | Capacity}}
 
{{dsc h2 | Capacity}}
{{dsc inc | cpp/container/dcl list empty | stack}}
+
{{dsc inc | cpp/container/dsc empty | stack}}
{{dsc inc | cpp/container/dcl list size | stack}}
+
{{dsc inc | cpp/container/dsc size | stack}}
  
 
{{dsc h2 | Modifiers}}
 
{{dsc h2 | Modifiers}}
{{dsc inc | cpp/container/dcl list push | stack}}
+
{{dsc inc | cpp/container/dsc push | stack}}
{{dsc inc | cpp/container/dcl list emplace | stack}}
+
{{dsc inc | cpp/container/dsc emplace | stack}}
{{dsc inc | cpp/container/dcl list pop | stack}}
+
{{dsc inc | cpp/container/dsc pop | stack}}
{{dsc inc | cpp/container/dcl list swap | stack}}
+
{{dsc inc | cpp/container/dsc swap | stack}}
  
 
{{dsc h1 | Member objects}}
 
{{dsc h1 | Member objects}}
{{dsc inc | cpp/container/dcl list c | stack}}
+
{{dsc inc | cpp/container/dsc c | stack}}
  
 
{{dsc end}}
 
{{dsc end}}
Line 60: Line 60:
 
===Non-member functions===
 
===Non-member functions===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/container/dcl list operator_cmp | stack}}
+
{{dsc inc | cpp/container/dsc operator_cmp | stack}}
{{dsc inc | cpp/container/dcl list swap2 | stack}}
+
{{dsc inc | cpp/container/dsc swap2 | stack}}
 
{{dsc end}}
 
{{dsc end}}
  
 
===Helper classes===
 
===Helper classes===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/container/dcl list uses_allocator | stack}}
+
{{dsc inc | cpp/container/dsc uses_allocator | stack}}
 
{{dsc end}}
 
{{dsc end}}
  

Revision as of 21:51, 31 May 2013

 
 
 
 
Defined in header <stack>
template<

    class T,
    class Container = std::deque<T>

> class stack;

The std::stack class is a container adapter that gives the programmer the functionality of a stack - specifically, a FILO (first-in, last-out) data structure.

The class template acts as a wrapper to the underlying container - only a specific set of functions is provided. The stack pushes and pops the element from the back of the underlying container, known as the top of the stack.

Contents

Template parameters

T - The type of the stored elements.
Container - The type of the underlying container to use to store the elements. The container must satisfy the requirements of Template:concept. Additionally, it must provide the following functions with the usual semantics:
  • back()
  • push_back()
  • pop_back()

The standard containers std::vector, std::deque and std::list satisfy these requirements.

Member types

Member type Definition
container_type Container[edit]
value_type Container::value_type[edit]
size_type Container::size_type[edit]
reference Container::reference[edit]
const_reference Container::const_reference[edit]

Member functions

constructs the stack
(public member function) [edit]
destructs the stack
(public member function) [edit]
assigns values to the container adaptor
(public member function) [edit]
Element access
accesses the top element
(public member function) [edit]
Capacity
checks whether the container adaptor is empty
(public member function) [edit]
returns the number of elements
(public member function) [edit]
Modifiers
inserts element at the top
(public member function) [edit]
(C++11)
constructs element in-place at the top
(public member function) [edit]
removes the top element
(public member function) [edit]
(C++11)
swaps the contents
(public member function) [edit]

Member objects

Container c
the underlying container
(protected member object) [edit]

Non-member functions

lexicographically compares the values of two stacks
(function template) [edit]
specializes the std::swap algorithm
(function template) [edit]

Helper classes

specializes the std::uses_allocator type trait
(class template specialization) [edit]