freeCodeCamp/guide/spanish/cplusplus/queue/index.md

197 lines
5.1 KiB
Markdown

---
title: queue
localeTitle: cola
---
## Colas
`queue` es uno de los contenedores más utilizados en C ++. Un contenedor es una estructura de datos que almacena una colección de objetos, algunos en orden, otros no. Todos los contenedores tienen un conjunto diferente de funciones que le permiten acceder a un objeto (s) en esa colección.
`std::queue` es parte de la biblioteca estándar de C ++ (de ahí el prefijo `std::` y le permite almacenar datos en el orden First In First Out (FIFO). NOTA: **Todos los objetos dentro de una cola deben ser del mismo tipo de datos**
El tipo de datos que almacena dentro de una cola va entre paréntesis angulares junto a la palabra clave de la cola. Por ejemplo, si desea almacenar una colección de enteros, la cola sería `std::queue<int> queue_name`
### Explicación de cola LIFO
`queue` nos permite empujar / poner en cola y hacer pop / sacar de la cola en un orden específico. **Empujar** significa insertar un objeto en la parte delantera de la cola. **Pop** significa sacar el objeto "más antiguo" del final de la cola. Así que cuando lo presionas está en la parte delantera y cuando haces pop extraes el elemento más antiguo.
![alt text](https://github.com/mohammadaziz313/helloworld/blob/master/Fifo_queue.png "Ejemplo de cola y salida de cola FIFO")
### Operaciones de cola
El contenedor de cola soporta las siguientes operaciones:
* empujar (poner en cola)
* pop (dequeue)
* vacío
* tamaño
* frente
* espalda
#### empujar
Le permite insertar un nuevo elemento al final de la cola, después de su último elemento actual.
```cpp
//Push operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
return 0;
}
```
#### Frente
Le permite acceder al siguiente elemento en la cola sin eliminarlo. El siguiente elemento es el elemento "más antiguo" en la cola.
```cpp
//Front operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
return 0;
}
```
```
Output:
1
1
```
#### Popular
Le permite eliminar el siguiente elemento en la cola, reduciendo efectivamente su tamaño en uno. El elemento eliminado es el elemento "más antiguo".
```cpp
//Pop operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
std::cout<<q.front()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
return 0;
}
```
```
Output:
1
2
```
#### tamaño
Devuelve el número de elementos en la `queue` .
```cpp
//Size operation in Queue
#include <iostream> // std::cout
#include <queue> // std::queue
int main ()
{
std::queue<int> q;
q.push(1); //Pushing 1 at front of the queue
q.push(2); //Pushing 2 at front of the queue
std::cout<<q.size()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
std::cout<<q.size()<<'\n'; //Accessing the front of the queue
q.pop(); //Removing the oldest element
std::cout<<q.size()<<'\n'; //Accessing the front of the queue
return 0;
}
```
```
Output:
2
1
0
```
#### Vacío
Devuelve si la `queue` está vacía, es decir, si el tamaño de la cola es cero. Devuelve `true` si el tamaño de la cola 0, si no, devuelve `false`
\`\` \`cpp // operación vacía en la cola
# incluir // std :: cout
# incluir // std :: stack
int main () { std :: queue q;
q.push (1); q.push (2);
while (q.empty ()! = true) { std :: cout << q.front () << '\\ n'; q.pop (); }
std :: cout << "Out of loop" << '\\ n'; devuelve 0; }
```
Output:
1
2
Out of loop
#### Back
Allows you to access the last element in the queue without removing it.
The next element is the "newest" element in the queue.
```
cpp // Operación trasera en cola
# incluir // std :: cout
# incluir // std :: queue
int main () { std :: queue q;
q.push (1); // Empujando 1 al frente de la cola q.push (2); // Empujando 2 al frente de la cola
std :: cout << q.back () << '\\ n'; // Accediendo al dorso de la cola std :: cout << q.back () << '\\ n'; // Accediendo al dorso de la cola
devuelve 0; } \`\` \`
```
Output:
2
2
```
### Para más recursos:
http://www.cplusplus.com/reference/queue/queue/
### Citaciones:
Cortesía de imagen: https://en.wikipedia.org/wiki/FIFO _(computación y_ electrónica)