¿Qué es un vector C ++?
Un VECTOR C ++ es una matriz dinámica capaz de redimensionarse automáticamente. El cambio de tamaño ocurre después de que un elemento ha sido agregado o eliminado del vector. El almacenamiento es manejado automáticamente por el contenedor. Los elementos de un vector se almacenan en un almacenamiento contiguo. Esto permite a los programadores de C ++ acceder y atravesar los elementos vectoriales utilizando iteradores.
La inserción de nuevos datos en un vector se realiza al final. Esto lleva un tiempo diferencial. La eliminación de un elemento de un vector lleva un tiempo constante. La razón es que no es necesario cambiar el tamaño del vector. La inserción o eliminación de un elemento al comienzo del vector toma un tiempo lineal.
En este tutorial de C ++, aprenderá:
- ¿Qué es un vector C ++?
- ¿Cuándo usar un vector?
- Cómo inicializar vectores en C ++
- Iteradores
- Modificadores
- Ejemplo 1
- Ejemplo 2
- Capacidad
- Ejemplo 3
¿Cuándo usar un vector?
Se debe utilizar un vector C ++ en las siguientes circunstancias:
- Cuando se trata de elementos de datos que cambian constantemente.
- Si no se conoce el tamaño de los datos antes de comenzar, el vector no requerirá que establezca el tamaño máximo del contenedor.
Cómo inicializar vectores en C ++
La sintaxis de los vectores en C ++ es:
vectorname (items)
- Como se muestra arriba, comenzamos con la palabra clave vector.
- El tipo de datos es el tipo de datos de los elementos que se almacenarán en el vector.
- El nombre es el nombre del vector o los elementos de datos.
- Los elementos denotan el número de elementos de los datos del vector. Este parámetro es opcional.
Iteradores
El propósito de los iteradores es ayudarnos a acceder a los elementos que están almacenados en un vector. Es un objeto que funciona como un puntero. Estos son los iteradores comunes compatibles con los vectores C ++:
- vector :: begin (): da un iterador que apunta al primer elemento del vector.
- vector :: end (): da un iterador que apunta al elemento más allá del final del vector.
- vector :: cbegin (): es lo mismo que vector :: begin (), pero no tiene la capacidad de modificar elementos.
- vector :: cend (): es lo mismo que vector :: end () pero no puede modificar elementos vectoriales.
Modificadores
Los modificadores se utilizan para cambiar el significado del tipo de datos especificado. Estos son los modificadores comunes en C ++:
- vector :: push_back (): este modificador empuja los elementos desde atrás.
- vector :: insert (): Para insertar nuevos elementos en un vector en una ubicación específica.
- vector :: pop_back (): este modificador elimina los elementos vectoriales de la parte posterior.
- vector :: erase (): se utiliza para eliminar un rango de elementos de la ubicación especificada.
- vector :: clear (): Elimina todos los elementos vectoriales.
Ejemplo 1
#include#include using namespace std;int main(){vector nums;for (int a = 1; a <= 5; a++)nums.push_back(a);cout << "Output from begin and end: ";for (auto a = nums.begin(); a != nums.end(); ++a)cout << *a << " ";cout << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream en nuestro código. Nos permitirá leer y escribir en la consola.
- Incluya el archivo de encabezado vectorial en nuestro código. Nos permitirá trabajar con vectores en C ++.
- Incluya el espacio de nombres estándar para usar sus clases y funciones sin llamarlo.
- Llame a la función main () dentro de la cual se debe agregar la lógica del programa.
- El {marca el inicio del cuerpo de la función main ().
- Declare un vector llamado nums para almacenar un conjunto de enteros.
- Cree un bucle for que nos ayude a iterar sobre el vector. La variable nos ayudará iterar sobre los elementos del vector, del 1 st a 5 th elementos.
- Empuje elementos en el vector num desde atrás. Para cada iteración, esto agregará el valor actual de la variable a en el vector, que es de 1 a 5.
- Imprime algo de texto en la consola
- Utilice una variable de iterador a para iterar sobre los elementos de números vectoriales desde el principio hasta el elemento pasado al final. Tenga en cuenta que estamos usando los iteradores vector :: begin () y vector :: end ().
- Imprima los valores apuntados por la variable de iterador an en la consola para cada iteración.
- Imprime algo de texto en la consola. \ N es un carácter de nueva línea, moviendo el cursor a la nueva línea para imprimir desde allí.
- Utilice una variable de iterador para iterar sobre los elementos de números vectoriales desde el principio hasta el elemento pasado al final. Tenga en cuenta que estamos usando iteradores vector :: cbegin () y vector :: cend ().
- Imprima los valores apuntados por la variable de iterador a en la consola para cada iteración.
- La función principal debería devolver un valor si el programa se ejecuta correctamente.
- Fin del cuerpo de la función main ().
Ejemplo 2
#include#include using namespace std;int main(){vector nums;nums.assign(5, 1);cout << "Vector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.push_back(2);int n = nums.size();cout << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream en nuestro código para usar sus funciones.
- Incluya el archivo de encabezado vectorial en nuestro código para usar sus funciones.
- Incluya el espacio de nombres estándar para usar sus clases sin llamarlo.
- Llame a la función main (). La lógica del programa debe agregarse dentro de su cuerpo.
- El inicio del cuerpo de la función main ().
- Declare un vector llamado nums para almacenar algunos valores enteros.
- Almacene 5 elementos en los números de vector. Cada uno con un valor de 1.
- Imprime algo de texto en la consola
- Utilice una variable de iterador a para iterar sobre los elementos de números vectoriales.
- Imprima los valores de los números vectoriales en la consola para cada iteración.
- Agregue el valor 2 al final de los números de vector.
- Declare una variable entera n para almacenar el tamaño de los números vectoriales.
- Imprime el último valor de números vectoriales junto con otro texto. Debería devolver un 2.
- Elimina el último elemento de los números de vector. El 2 se eliminará.
- Imprime texto en la consola. \ N mueve el cursor a la nueva línea para imprimir el texto allí.
- Utilice una variable de iterador a para iterar sobre los elementos de números vectoriales.
- Imprima los valores de los números vectoriales en la consola para cada iteración.
- Inserte el valor 7 al comienzo de los números de vector.
- Imprime el primer valor de números vectoriales junto con otro texto. Debería devolver 7.
- Elimina todos los elementos de los números de vector.
- Imprima el tamaño del vector num junto con otro texto después de borrar todo el contenido. Debería devolver 0.
- Fin del cuerpo de la función main ().
Capacidad
Utilice las siguientes funciones para determinar la capacidad de un vector:
- Tamaño (): devuelve el número de elementos en un vector.
- Max_size (): devuelve la mayor cantidad de elementos que un vector puede almacenar.
- Capacidad (): devuelve la cantidad de espacio de almacenamiento asignado a un vector.
- Resize (): cambia el tamaño del contenedor para que contenga n elementos. Si el tamaño actual del vector es mayor que n, los elementos posteriores se eliminarán del vector. Si el tamaño actual del vector es menor que n, se agregarán elementos adicionales en la parte posterior del vector.
- Empty () -i t devuelve verdadero si un vector está vacío, de lo contrario, devuelve falso.
Ejemplo 3
#include#include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"< Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream en nuestro código para usar su función.
- Incluya el archivo de encabezado vectorial en nuestro código para usar sus funciones.
- Incluya el espacio de nombres std en nuestro código para usar sus clases sin llamarlo.
- Llame a la función main (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
- Cree un vector llamado vector1 para almacenar enteros.
- Utilice un bucle for para crear la variable x con valores de 1 a 10.
- Empuje los valores de la variable x en el vector.
- Imprima el tamaño del vector junto con otro texto en la consola.
- Imprima la capacidad del vector junto con otro texto en la consola.
- Imprima la cantidad máxima de elementos que el vector puede contener junto con otro texto en la consola.
- Cambie el tamaño del vector para contener solo 5 elementos.
- Imprima el nuevo tamaño del vector junto con otro texto.
- Compruebe si el vector no está vacío.
- Imprime texto en la consola si el vector no está vacío.
- Use una instrucción else para indicar qué hacer si el vector está vacío.
- Texto para imprimir en la consola si el vector está vacío.
- El programa debe devolver valor una vez completado con éxito.
- Fin del cuerpo de la función main ().
Resumen:
- Un vector C ++ es una matriz dinámica capaz de cambiar su tamaño automáticamente cuando se agrega o elimina un elemento.
- El almacenamiento de un vector es manejado automáticamente por el contenedor.
- Los elementos de un vector se almacenan en un almacenamiento contiguo para poder acceder a ellos y luego atravesarlos mediante iteradores.
- La inserción de nuevos datos en un vector se realiza al final.
- La inserción de datos en un vector lleva un tiempo diferencial.
- La eliminación de un elemento de un vector lleva un tiempo constante.
- La inserción o eliminación de un elemento al principio toma un tiempo lineal.
- Los vectores deben usarse cuando se trata de elementos de datos que cambian constantemente.
- Además, puede utilizar vectores si no se conoce el tamaño de los datos antes de comenzar.