<Stack>
Encabezado que define la pila clase de contenedor:
Clases
pila ------- Pila LIFO (plantilla de clase)
Las pilas son un tipo de adaptador de recipiente, específicamente diseñado para operar en un contexto LIFO (último en entrar, primero en salir), donde se insertan elementos y extrajeron sólo desde un extremo del recipiente. apile s se implementan como contenedores adaptadores , que son las clases que utilizan un objeto encapsulado de una clase contenedor específico como su contenedor subyacente , proporcionando un conjunto específico de funciones miembro para acceder a sus elementos. Los elementos se empujan / aparecido desde el "back" del contenedor específico, que se conoce como la parte superior de la pila. El contenedor subyacente puede ser cualquiera de las plantillas de clase contenedor estándar o alguna otra clase de contenedor diseñado específicamente. Los recipientes deberán soportar las siguientes operaciones:
-vacío
-tamaño
-espalda
-push_back
-pop_back
Las clases de contenedores estándar vector, deque y listacumplir con estos requisitos. Por defecto, si no se especifica ninguna clase de contenedor para un particular,pila clase de instancias, el contenedor estándar deque se utiliza.
ejemplo en c++
1)
// constructing stacks
#include <iostream> // std::cout
#include <stack> // std::stack
#include <vector> // std::vector
#include <deque> // std::deque
int main ()
{
std::deque<int> mydeque (3,100); // deque with 3 elements
std::vector<int> myvector (2,200); // vector with 2 elements
std::stack<int> first; // empty stack
std::stack<int> second (mydeque); // stack initialized to copy of deque
std::stack<int,std::vector<int> > third; // empty stack using vector
std::stack<int,std::vector<int> > fourth (myvector);
std::cout << "size of first: " << first.size() << '\n';
std::cout << "size of second: " << second.size() << '\n';
std::cout << "size of third: " << third.size() << '\n';
std::cout << "size of fourth: " << fourth.size() << '\n';
return 0;
}
2)
// swap stacks
#include <iostream> // std::cout
#include <Stack> // std::stack, std::swap(stack)
int main ()
{
std::stack<int> foo,bar;
foo.push (10); foo.push(20); foo.push(30);
bar.push (111); bar.push(222);
swap(foo,bar);
std::cout << "size of foo: " << foo.size() << '\n';
std::cout << "size of bar: " << bar.size() << '\n';
return 0;
}
3)
template <class T, class Container, class Alloc>
struct uses_allocator<stack<T,Container>,Alloc>
: uses_allocator<Container,Alloc>::type {}
No hay comentarios.:
Publicar un comentario