All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
stack.hpp
Go to the documentation of this file.
1 
8 #ifndef PAAL_STACK_HPP
9 #define PAAL_STACK_HPP
10 
11 #include <vector>
12 
13 namespace paal {
14 namespace data_structures {
15 
17 template <class T> class stack {
18  std::vector<T> m_v;
19  std::size_t m_size;
20  public:
22  stack() : m_v(std::vector<T>()), m_size(0) {}
24  void push() {
25  if (++m_size > m_v.size()) m_v.resize(m_size);
26  }
28  void pop() { --m_size; }
30  const T &top() const { return m_v[m_size - 1]; }
32  T &top() { return m_v[m_size - 1]; }
34  bool empty() const { return m_size == 0; }
36  std::size_t size() const { return m_size; }
37 };
38 
39 } // !data_structures
40 } // !paal
41 
42 #endif /* PAAL_STACK_HPP */
std::size_t size() const
size
Definition: stack.hpp:36
bool empty() const
empty
Definition: stack.hpp:34
const T & top() const
top
Definition: stack.hpp:30
void pop()
pop doesn&#39;t call destructor
Definition: stack.hpp:28