32 template<
typename... Args>
34 value.emplace_back(args...);
53 value.push_back(std::move(val));
72 for(
size_t i=0;i<n;i++) {
83 [[nodiscard]] T
top() {
98 return std::forward<T&>(value.back());
106 auto o = value.back();
122 return value.empty();
138 auto begin() {
return value.begin(); }
139 auto end() {
return value.end(); }
141 auto rend() {
return value.rend(); }
void push(const T &val)
Push val onto the stack.
Definition: Stack.h:49
auto rbegin()
Definition: Stack.h:140
void clear()
Definition: Stack.h:41
void reserve(size_t t)
Definition: Stack.h:37
const std::vector< T > & get_value() const
Definition: Stack.h:113
std::vector< T > value
Definition: Stack.h:27
Stack()
Definition: Stack.h:28
void emplace_back(Args... args)
Definition: Stack.h:33
void pop()
Remove top from the stack.
Definition: Stack.h:59
auto begin()
These are for iterating through the underlying vector.
Definition: Stack.h:138
T top()
Definition: Stack.h:83
void popn(size_t n)
Remove n from the stack.
Definition: Stack.h:71
bool empty() const
Definition: Stack.h:121
size_t size() const
Definition: Stack.h:117
void push(const T &&val)
Definition: Stack.h:52
T & topref()
Definition: Stack.h:92
std::string str(const Stack< T > &a)
Definition: Stack.h:145
auto end()
Definition: Stack.h:139
T toppop()
Definition: Stack.h:101
auto rend()
Definition: Stack.h:141
std::string string() const
Definition: Stack.h:125