--- title: stack localeTitle: pilha --- ## Pilhas `stack` é um dos contêineres mais usados ​​em C ++. Um contêiner é uma estrutura de dados que armazena uma coleção de objetos, alguns em ordem, outros não. Todos os contêineres possuem um conjunto diferente de funções que permitem acessar um objeto (s) nessa coleção. `std::stack` faz parte da biblioteca padrão C ++ (daí o prefixo `std::` e permite que você armazene dados na ordem Last In First Out (LIFO). NOTA: **Todos os objetos dentro de uma pilha devem ser do mesmo tipo de dados** O tipo de dados armazenado em uma pilha fica entre os colchetes angulares ao lado da palavra-chave da pilha. Por exemplo, se você gostaria de armazenar uma coleção de inteiros, a pilha seria `std::stack stack_name` ### Stack LIFO Explanation `stack` nos permite empurrar e pop em ordem específica. **Empurrar** significa inserir um objeto no topo da pilha. **Pop** significa retirar o último objeto inserido do topo da pilha. Então, quando você empurra, está no topo e quando você estala, extrai o último elemento inserido. ![alt text](https://github.com/mohammadaziz313/helloworld/blob/master/Lifo_stack.png "LIFO Stack Push and Pop Example") ### Operações de pilha O contêiner de pilha suporta as seguintes operações: * empurrar * pop * vazio * Tamanho * costas #### Empurrar Permite inserir um novo elemento na parte superior da pilha, acima do elemento superior atual. ```cpp //Push operation in Stack #include // std::cout #include // std::stack int main () { std::stack s; s.push(1); //Pushing 1 at top of the stack s.push(2); //Pushing 2 at top of the stack return 0; } ``` #### Topo Permite que você acesse o elemento superior sem removê-lo de sua pilha. ```cpp //Top operation in Stack #include // std::cout #include // std::stack int main () { std::stack s; s.push(1); //Pushing 1 at top of the stack s.push(2); //Pushing 2 at top of the stack std::cout< // std::cout #include // std::stack int main () { std::stack s; s.push(1); //Pushing 1 at top of the stack s.push(2); //Pushing 2 at top of the stack std::cout< // std::cout #include // std::stack int main () { std::stack s; s.push(1); //Pushing 1 at top of the stack s.push(2); //Pushing 2 at top of the stack std::cout< // std::cout #include // std::stack int main () { std::stack s; s.push(1); s.push(2); while(s.empty() != false){ std::cout<