std::stack
Definido en el archivo de encabezado <stack>
|
||
template< class T, |
||
La clase std::stack
es un adaptador de contenedor que le da al programador la funcionalidad de una pila. Específicamente, una estructura de datos LIFO (del acrónimo en inglés last-in, first-out) o UEPS (del acrónimo últimas entradas, primeras salidas).
La plantilla de clase actúa como envoltorio del contenedor subyacente; solo se proporciona un conjunto específico de funciones. La pila apila y desapila el elemento desde la parte posterior del contenedor subyacente, conocido como la parte superior de la pila.
Contenido |
[editar] Parámetros de plantilla
T | - | El tipo de los elementos almacenados. El comportamiento no está definido si T no es el mismo tipo que Container::value_type .
|
Container | - | El tipo del contenedor subyacente a usar para almacenar los elementos. El contenedor debe cumplir con los requisitos de ContenedorDeSecuencia. Además, debe proporcionar las siguientes funciones con la semántica habitual:
Los contenedores estándar std::vector, std::deque y std::list cumplen con estos requisitos. Por defecto, si no se especifica ninguna clase de contenedor para la ejemplación particular de una pila, se usa el contenedor estándar std::deque. |
[editar] Tipos miembro
Tipo miembro | Definición |
container_type
|
Container
|
value_type
|
Container::value_type
|
size_type
|
Container::size_type
|
reference
|
Container::reference
|
const_reference
|
Container::const_reference
|
[editar] Objetos miembro
Miembro | Descripción |
Container c |
El contenedor subyacente. (objeto miembro protegido) |
[editar] Funciones miembro
Construye el contenedor stack . (función miembro pública) | |
Destruye el contenedor stack . (función miembro pública) | |
Asigna valores al adaptador de contenedor. (función miembro pública) | |
Acceso a elementos | |
Accede al elemento en la parte superior. (función miembro pública) | |
Capacidad | |
Comprueba si el contenedor subyacente está vacío. (función miembro pública) | |
Devuelve el número de elementos. (función miembro pública) | |
Modificadores | |
Apila un elemento en la parte superior de la pila. (función miembro pública) | |
(C++23) |
Inserta un rango de elementos en la parte superior de la pila. (función miembro pública) |
(C++11) |
Apila el elemento en el sitio en la parte superior de la pila. (función miembro pública) |
Desapila el elemento en la parte superior de la pila. (función miembro pública) | |
(C++11) |
Intercambia el contenido. (función miembro pública) |
[editar] Funciones no miembro
Compara lexicográficamente los valores de stack. (plantilla de función) | |
(C++11) |
Especializa el algoritmo std::swap. (plantilla de función) |
[editar] Clases auxiliares
Especializa el rasgo de tipo std::uses_allocator. (plantilla de función) | |
(C++23) |
Apoyo de formato para std::stack . (especialización de plantilla de clase) |
Guías de deducción |
(desde C++17) |
[editar] Notas
Macro de prueba de característica | Valor | Estándar | Comentario |
---|---|---|---|
__cpp_lib_containers_ranges |
202202L | (C++23) | Construcción e inserción de rangos para contenedores. |
[editar] Example
Esta sección está incompleta Razón: sin ejemplo |
[editar] Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
---|---|---|---|
LWG 307 | C++98 | Container no podía ser.
|
Se admite. |
LWG 2566 | C++98 | Faltaba el requisito de Container::value_type .
|
Mal formado si T no es el mismo tipo queContainer::value_type .
|
[editar] Véase también
Array dinámico contiguo. (plantilla de clase) | |
Conjunto de bits eficiente en el uso de espacio. (plantilla de clase) | |
Cola doblemente terminada (deque ). (plantilla de clase) | |
Lista doblemente enlazada. (plantilla de clase) |