#include #include using Stack = std::vector; void push(Stack &s, int v) { s.push_back(v); } void pop(Stack &s) { s.pop_back(); } int top(Stack const &s) { return s[s.size() - 1]; } bool is_empty(Stack const &s) { return s.size() == 0; } int main(int, char const *[]) { Stack my_stack; for (int i = 0; i < 4; ++i) { push(my_stack, i); } std::cout << "Topo atual " << top(my_stack) << std::endl; pop(my_stack); for (int i = 0; i < 3; ++i) { push(my_stack, 3*i); } std::cout << "Pilha atual: "; while ( !is_empty(my_stack) ) { auto x = top(my_stack); pop(my_stack); std::cout << x << " "; } std::cout << std::endl; }