1. Introducción a la pila
La pila es una estructura de datos de primero en entrar, último en salir (FILO), solo tiene una salida. El contenedor de la pila permite agregar elementos, eliminar elementos y obtener el elemento superior de la pila, pero no hay otra forma de acceder a otros elementos de la pila excepto por la parte superior. En otras palabras, la pila no permite el comportamiento transversal.
- La operación de empujar elementos sobre la pila se llama: empujar
- La operación de empujar elementos fuera de la pila se llama pop
Apilar es simplemente para decorar el contenedor deque y convertirse en otro tipo de contenedor.
#include <stack>
En segundo lugar, la estructura predeterminada del objeto de pila
La pila se implementa utilizando clases de plantilla y la estructura predeterminada del objeto pila: pila stkT;
stack <int> stkInt; //一个存放int的stack容器。
stack <float> stkFloat; //一个存放float的stack容器。
stack <string> stkString; //一个存放string的stack容器。
//尖括号内还可以设置指针类型或自定义类型。
Tres métodos de pila push () y pop ()
stack.push (elem); // Agrega elementos al cabezal de la pila
stack.pop (); // Elimina el primer elemento de la pila
stack<int> stkInt;
stkInt.push(1);
stkInt.push(3);
stkInt.pop();
//此时stkInt存放的元素是1
Cuarto, la construcción de copias y la asignación de objetos de pila.
stack (const stack & stk); // constructor de copia
stack & operator = (const stack & stk); // Sobrecargar el operador de signo igual
stack<int> stkIntA;
stkIntA.push(9);
stack<int> stkIntB(stkIntA); //拷贝构造
stack<int> stkIntC;
stkIntC = stkIntA; //赋值
Cinco, acceso a datos de pila
stack.top (); // Devuelve el último elemento insertado en la pila, que es el elemento superior de la pila
stack<int> stkIntA;
stkIntA.push(1);
stkIntA.push(7);
stkIntA.push(9);
int iTop = stkIntA.top(); //9
Seis, el tamaño de la pila
stack.empty (); // Determinar si la pila está vacía
stack.size (); // Devuelve el tamaño de la pila
stack<int> stkIntA;
stkIntA.push(1);
stkIntA.push(3);
if (!stkIntA.empty()){
int iSize = stkIntA.size(); //2
}