English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Queue (cola)

En el campo de la informática, nos dedicamos a varios programas. Cada uno tiene su propio dominio y utilidad. Según el propósito de creación del programa y el entorno, tenemos una gran cantidad de estructuras de datos disponibles para elegir. Una de ellas es la "cola". Antes de discutir este tipo de datos, veamos su sintaxis.

Sintaxis

template<class T, class Container = deque<T> > class queue;

Esta estructura de datos es adecuada para la técnica FIFO, donde FIFO significa primero en, primero out. El elemento insertado primero será el primero en ser extraído, y así sucesivamente. Hay un elemento llamado "frente" que es el elemento ubicado en la posición más anterior o la primera posición, y también hay un elemento llamado "atras" que es el elemento ubicado en la última posición. En la cola común, la inserción de elementos se realiza en la cola, mientras que la eliminación se realiza desde la parte frontal.

La cola implícita en el área de aplicación es un adaptador de contenedor.

El contenedor debe soportar la siguiente lista de operaciones:

  • empty

  • size

  • push_back

  • pop_front

  • front

  • back

Parámetro de plantilla

T:parámetro que especifica el tipo de elementos que se conservarán en el adaptador de contenedor.

Container:parámetro que especifica el objeto interno del contenedor, donde se conservan los elementos de la cola.

Tipos de miembros

A continuación se proporciona una lista de tipos de miembros de la cola y se realiza una descripción breve de los mismos.

Tipos de miembrosDescripción
value_typeEspecifica el tipo de elemento.
container_typeEspecifica el tipo de contenedor subyacente.
size_typeEspecifica el rango de tamaño del elemento.
referenceEs un tipo de referencia de contenedor.
const_referenceEs un tipo de referencia de contenedor constante.

Función

A través de las funciones, se pueden usar objetos o variables en el campo de la programación. La cola proporciona una gran cantidad de funciones que se pueden usar o incrustar en el programa. La lista es la siguiente:

FunciónDescripción
(constructor)Esta función se utiliza para construir el contenedor de cola.
emptyEsta función se utiliza para probar si la cola está vacía. Si la cola está vacía, esta función devuelve true, de lo contrario devuelve false.
sizeEsta función devuelve el número de elementos en la cola.
frontEsta función devuelve el primer elemento. Este elemento tiene un papel muy importante, ya que todas las operaciones de eliminación se realizan en el elemento frontal.
backEsta función devuelve el último elemento. Este elemento tiene un papel muy importante, ya que todas las operaciones de inserción se realizan en el elemento siguiente.
pushEsta función se utiliza para insertar un nuevo elemento en la cola.
popEsta función se utiliza para eliminar el primer elemento.
emplaceEsta función se utiliza para insertar un nuevo elemento sobre el elemento siguiente actual.
swapEsta función se utiliza para intercambiar el contenido de dos contenedores referenciados.
operadores relacionalesLas funciones no miembro especifican los operadores de relación necesarios para la cola.
uses allocator<queue>Como su nombre indica, las funciones no miembro utilizan el administrador de memoria para la cola.

Ejemplo: Un programa simple que muestra el uso de las funciones básicas de la cola.

#include <iostream>
#include <queue>
using namespace std;
void showsg(queue <int> sg)
{
	queue <int> ss = sg;
	while (!ss.empty())
	{
		cout << "\t" << ss.front();
		ss.pop();
	}
	cout << "\n";
}
int main()
{
	queue <int> fquiz;
	fquiz.push(10);
	fquiz.push(20);
	fquiz.push(30);
	cout << "\nLa cola fquiz es : ";
	showsg(fquiz);
	cout << "\nfquiz.size() : " << fquiz.size();
	cout << "\nfquiz.front() : " << fquiz.front();
	cout << "\nfquiz.back() : " << fquiz.back();
	cout << "\nfquiz.pop() : ";
	fquiz.pop();
	showsg(fquiz);
	return 0;
}

Salida:

La cola fquiz es : 	10	20	30
fquiz.size() : 3
fquiz.front() : 10
fquiz.back() : 30
fquiz.pop() : 	20	30