C ++

Cómo utilizar la cola de C ++

Cómo utilizar la cola de C ++

Introducción

Una cola es una colección de elementos, donde el primer elemento agregado a la lista debe ser el primer elemento que se eliminará a continuación. Entonces, a medida que se agregan artículos a la colección, crece en tamaño, yo.mi. está creciendo en longitud. Siempre que se deba eliminar un elemento, debe ser el primero que se agregue. Si los elementos se eliminan continuamente, el siguiente que se elimina es el segundo elemento; el tercero se quita después, y así sucesivamente.

Una vez que se ha eliminado el primer elemento de la lista original, el segundo se convierte en el primer elemento. Una vez que se ha eliminado el segundo elemento, el tercero se convierte en el primer elemento, y así sucesivamente.

Un buen ejemplo de la vida real de una cola es cuando las personas hacen fila para esperar el servicio o una buena. La primera persona se sirve primero antes que la última. Sin embargo, la cola de la que se habla en este tutorial es la cola de software, como se diseñó en C++.

FIFO

FIFO son las siglas de First-In, First-Out. Es otra forma de apreciar la cola. Esto significa que el primer elemento en ingresar a la lista es el primer elemento que se eliminará, siempre que se lleve a cabo la eliminación. El comienzo de la lista se llama cabeza o frente; el final de la lista se llama back or tail.

Operaciones esenciales

Una cola de software debe tener al menos las siguientes operaciones:

empujar

Esta operación agrega un nuevo elemento al final de la cola. Esta operación se llama oficialmente, poner en cola.

cambiar

Esta operación elimina el primer elemento de la cola y el segundo elemento se convierte en el nuevo primer elemento. Esta operación se llama oficialmente dequeue. Se llama pop en C++.

Este artículo explica cómo utilizar la estructura de datos de cola de C ++. Debe conocer los punteros y referencias de C ++ para comprender el resto de este artículo.

Clase y objetos

Una clase es un conjunto de variables y funciones que trabajan juntas, donde las variables no tienen valores asignados a. Cuando se asignan valores a las variables, la clase se convierte en un objeto. Diferentes valores dados a la misma clase dan como resultado diferentes objetos; es decir, diferentes objetos son de la misma clase con diferentes valores. Se dice que crear un objeto a partir de una clase es instanciar el objeto.

El nombre, cola, es una clase. Un objeto creado a partir de la clase de cola tiene un nombre elegido por el programador.

Se necesita una función que pertenece a una clase para instanciar un objeto de la clase. En C ++, esa función tiene el mismo nombre que el nombre de la clase. Los objetos creados (instanciados) a partir de la clase tienen diferentes nombres dados por el programador.

Crear un objeto de la clase significa construir el objeto; también significa instanciar.

Un programa C ++ que usa la clase de cola, comienza con las siguientes líneas en la parte superior del archivo:

#incluir
#incluir
usando el espacio de nombres std;

La primera línea es para entrada / salida. La segunda línea es para permitir que el programa use todas las características de la clase de cola. La tercera línea permite que el programa use los nombres en el espacio de nombres estándar.

Sobrecarga de una función

Cuando dos o más firmas de funciones diferentes tienen el mismo nombre, se dice que ese nombre está sobrecargado. Cuando se llama a una función, el número y tipo de argumentos determina qué función se ejecuta realmente.

Construcción

cola nombre()

La siguiente declaración crea una instancia de una cola llamada, que de tipo int.

cola What;

La cola esta vacia. La declaración comienza con la palabra reservada, cola seguida de paréntesis angulares con el tipo de datos. Entonces tienes el nombre del programador para la cola.

Construir con la lista de inicializadores

La siguiente definición muestra cómo crear una cola con una lista de inicializadores:

cola que (1.1, 2.2, 3.3, 4.4);

Destruyendo una cola

Para destruir una cola, déjela fuera de alcance.

Acceso al elemento de cola

empujar (valor)

Una cola es una lista de primero en entrar, primero en salir. Entonces, cada valor se agrega desde atrás. El siguiente segmento de código crea una cola vacía, después de lo cual se agregan cinco valores flotantes desde atrás:

cola What;
What.empujar (1.1);
What.empujar (2.2);
What.empujar (3.3);
What.empujar (4.4);
What.empujar (5.5);

tamaño () const

Esto devuelve el número de elementos en la cola. El siguiente código ilustra:

cola What;
What.empujar (1.1); What.empujar (2.2); What.empujar (3.3); What.empujar (4.4); What.empujar (5.5);
cout << que.size() << '\n';

La salida es 5.

parte delantera()

Esto devuelve una referencia al primer elemento de la cola, sin eliminar el elemento. La salida del siguiente código es 1.1.

cola What;
What.empujar (1.1); What.empujar (2.2); What.empujar (3.3); What.empujar (4.4); What.empujar (5.5);
cout << que.front() << '\n';

El elemento no se elimina de la cola.

frente () const

Cuando la construcción de la cola está precedida por const, se ejecuta la expresión "front () const" en lugar de "front ()". Se utiliza en el siguiente código, por ejemplo.

cola constante que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';

Se devuelve una referencia constante. El elemento no se elimina del vector. Los elementos de la cola no se pueden cambiar.

espalda()

Esto devuelve una referencia al último elemento de la cola, sin eliminar el elemento. La salida del siguiente código es 5.5.

cola What;
What.empujar (1.1); What.empujar (2.2); What.empujar (3.3); What.empujar (4.4); What.empujar (5.5);
cout << que.back() << '\n';

atrás () const

Cuando la construcción de la cola está precedida por const, se ejecuta la expresión "back () const" en lugar de "back ()". Se utiliza en el siguiente código, por ejemplo.

cola constante que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.back() << '\n';

Se devuelve una referencia constante. El elemento no se elimina de la cola. Con la constante anterior para la construcción de la cola, los elementos de la cola no se pueden cambiar.

Capacidad de la cola

tamaño () const

- véase más arriba

vacío () const

Esto devuelve 1 para verdadero si no hay elementos en la cola, o 0 para falso si la cola está vacía. El siguiente código ilustra esto:

cola que1 (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que1.empty() << '\n';
cola que2;
cout << que2.empty() << '\n';

La salida es:

0
1

Modificadores de cola

música pop()

Una cola es FIFO, por lo que cualquier elemento que deba eliminarse debe eliminarse de la parte superior (cabecera) de la cola. Esta función miembro elimina el primer elemento sin devolverlo. El siguiente código ilustra esto:

cola que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';
What.música pop();
cout << que.size() << '\n';

La salida es:

1.1
4

a.permuta (b)

Se pueden intercambiar dos colas, como se ilustra en este segmento de código:

cola que1 (1.1, 2.2, 3.3, 4.4, 5.5);
cola que2 (10, 20);
que1.intercambio (que2);
cout << "First element and size of que1:
"<< que1.front() <<", "<< que1.size() << '\n';
cout << "First element and size of que2 "<<
que2.parte delantera() <<", "<< que2.size() << '\n';

La salida es:

Primer elemento y tamaño de que1: 10, 2

Primer elemento y tamaño de que2: 1.15

Tenga en cuenta que la longitud de una cola aumenta si es necesario. Además, los valores que no tuvieron reemplazos se reemplazan por algún valor predeterminado. Los tipos de datos deben ser del mismo tipo.

Operadores relacionales y de igualdad para colas

Para caracteres ordinarios en C ++, en orden ascendente, los números van antes de las letras mayúsculas, que van antes de las minúsculas. El carácter de espacio viene antes de cero y todos ellos.

Operadores de igualdad

Devuelve 1 para verdadero y 0 para falso.

El == operador

Devuelve 1 si las dos colas tienen el mismo tamaño y los elementos correspondientes son iguales; de lo contrario, devuelve 0. Ejemplo:

cola que1 ("tipo", "algo más");
cola que2 ("malvado");
int num = que1 == que2;
cout << num << '\n';

La salida es: 0.

La != Operador

- opuesto a lo anterior. Ejemplo:

cola que1 ("tipo", "algo más");
cola que2 ("malvado");
int num = que1 != que2;
cout << num << '\n';

La salida es: 1.

Operadores relacionales

Devuelve 1 para verdadero y 0 para falso.

La < Operator

Devuelve 1 si la primera cola es el subconjunto inicial de la segunda cola, con los elementos de las dos porciones iguales siendo iguales y en el mismo orden. Si ambas colas son del mismo tamaño o de diferentes tamaños, y moviéndose de izquierda a derecha, se encuentra un elemento en la primera cola que es menor que el elemento correspondiente en la segunda cola, entonces se devolverá 1. De lo contrario, se devuelve 0. Ejemplo:

cola que1 ("tipo", "algo más");
cola que2 ("malvado");
int num = que1 < que2;
cout << num << '\n';

La salida es 1. < does not include the case when the size and order are the same.

El> operador

- opuesto a lo anterior. Ejemplo:

cola que1 ("tipo", "algo más");
cola que2 ("malvado");
int num = que1> que2;
cout << num << '\n';

Salida: 0

La <= Operator

- igual que < but includes the case when the size and order are the same. Example:

cola que1 ("tipo", "algo más");
cola que2 ("malvado");
int num = que1 <= que2;
cout << num << '\n';

Salida: 1

El> = operador

- opuesto a lo anterior. Ejemplo:

cola que1 ("tipo", "algo más");
cola que2 ("malvado");
int num = que1> = que2;
cout << num << '\n';

Salida: 0

Clase y sus objetos instanciados

Un valor es para un tipo de datos, como un objeto instanciado es para una clase. La construcción de la cola también puede aceptar una clase como tipo de datos. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres std;
clase TheCla

público:
int num;
static char ch;
void func (char cha, const char * str)

cout << "There are " << num << " books worth " << cha << str << " in the store." << '\n';

diversión del vacío estático (char ch)

si (ch == 'a')
cout << "Official static member function" << '\n';

;
int main ()

TheCla obj1; TheCla obj2; TheCla obj3; TheCla obj4; TheCla obj5;
cola What;
What.empujar (obj1); What.empujar (obj2); What.empujar (obj3); What.empujar (obj4); What.empujar (obj5);
cout << que.size() << '\n';
return 0;

La salida es 5.

Lista enlazada

La lista de cola se denomina técnicamente lista enlazada. Hay dos tipos de listas enlazadas para la cola: lista enlazada individualmente y lista enlazada doblemente.

Un elemento de lista enlazado individualmente se puede implementar mediante una estructura de dos miembros. Un miembro tiene un puntero al siguiente elemento y el otro miembro tiene el datum (singular para datos).

Un elemento de lista doblemente enlazado se puede implementar mediante una estructura de tres miembros. El miembro del medio tiene el datum, mientras que el primer y tercer miembro tienen punteros a sus elementos adyacentes.

Aplicaciones de la cola

La cola es una estructura de datos de primero en entrar, primero en salir. Hay situaciones en la informática en las que los datos llegan en forma de cola, lo que requiere un comportamiento de primero en entrar, primero en salir.

Compartir recursos informáticos

Un recurso en una computadora es cualquier componente físico o virtual de disponibilidad limitada. Incluyen la CPU, la tarjeta de video, el disco duro y la memoria. Compartir tal recurso necesita una cola.

Manejo de interrupciones

Los periféricos de la computadora deben interrumpir la computadora de vez en cuando. Las interrupciones deben manejarse de la misma forma en que llegaron. Esto necesita una cola.

Gestionar información.

La cola se puede usar, por ejemplo, para administrar archivos de aplicaciones para un trabajo, si los archivos están almacenados en la computadora.

Conclusión

Una cola es una estructura de datos de lista, que es una lista enlazada individualmente o una lista enlazada doble. Como regla general, el primer elemento que ingresa a la lista es el primer elemento que sale. C ++ proporciona una estructura de datos de cola en su biblioteca estándar. Las categorías de funciones miembro y operadores disponibles para esta estructura son construcción de cola, acceso a elementos de cola, capacidad de cola, modificadores de cola y operadores sobrecargados de cola.

Cualquier estructura de datos de cola debe proporcionar al menos las funciones miembro push () y pop (). push () significa enviar un nuevo elemento al final de la cola; y pop () significa, eliminar el elemento que está al principio de la cola. Desafortunadamente, en C ++, estas funciones no devuelven el valor insertado o emergente. Entonces, para conocer el último elemento antes de presionar, se debe usar la función adicional back (); y para conocer el primer elemento antes de aparecer, se debe usar la función adicional front ().

Un valor es para un tipo de datos, como un objeto instanciado es para una clase. Por lo tanto, una clase particular se puede utilizar como tipo de datos para la instanciación de la plantilla de cola. Diferentes objetos para la clase se vuelven como diferentes valores para la clase.

La cola tiene aplicaciones en la computadora. Se puede usar, por ejemplo, para administrar archivos de aplicaciones para un trabajo, si los archivos están almacenados en la computadora.

Chrys

Emule los clics del mouse colocando el mouse con Clickless Mouse en Windows 10
El uso excesivo de un mouse o teclado en una postura incorrecta puede provocar muchos problemas de salud, como tensión, síndrome del túnel carpiano y ...
Agregue gestos del mouse a Windows 10 con estas herramientas gratuitas
En los últimos años, las computadoras y los sistemas operativos han evolucionado enormemente. Hubo un momento en que los usuarios tenían que usar coma...
Controle y administre el movimiento del mouse entre múltiples monitores en Windows 10
Administrador de mouse de doble pantalla le permite controlar y configurar el movimiento del mouse entre varios monitores, al ralentizar sus movimient...