Vector en la biblioteca de plantillas estándar (STL) de C++ con ejemplo

¿Qué es un vector C++?

A Vectores C ++ es una matriz dinámica capaz de cambiar su tamaño automáticamente. El cambio de tamaño se produce después de que se ha agregado o eliminado un elemento del vector. El almacenamiento lo gestiona automáticamente el contenedor. Los elementos de un vector se almacenan en un almacenamiento contiguo. Esto permite a los programadores de C++ acceder y recorrer los elementos vectoriales mediante iteradores.

La inserción de nuevos datos a un vector se realiza al final del mismo. 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 requiere tiempo lineal.

¿Cuándo utilizar un vector?

Se debe utilizar un vector C++ en el siguientewing 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 + + :

vector <data-type> name (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 de los elementos de datos.
  • Los elementos indican 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 admitidos por los vectores de C++:

  • vector:: comenzar(): da un iterador que apunta al primer elemento del vector.
  • vector:: fin(): proporciona 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::insertar(): 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::borrar(): Se utiliza para eliminar una variedad de elementos de la ubicación especificada.
  • vector::claro(): Elimina todos los elementos del vector.

ejemplo 1

#include <iostream> 
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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;
}

Salida:

Modificadores

Aquí hay una captura de pantalla del código:

Modificadores

Explicación del código:

  1. Incluya el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
  2. Incluya el archivo de encabezado vectorial en nuestro código. Nos permitirá trabajar con vectores en C++.
  3. Incluya el espacio de nombres estándar para utilizar sus clases y funciones sin llamarlo.
  4. Llame a la función main() dentro de la cual se debe agregar la lógica del programa.
  5. El { marca el inicio del cuerpo de la función main().
  6. Declare un vector llamado nums para almacenar un conjunto de números enteros.
  7. Crea un bucle for para ayudarnos a iterar sobre el vector. La variable nos ayudará a iterar sobre los elementos del vector, desde 1st al 5th elementos.
  8. Empuje elementos en el número de vector desde la parte posterior. Para cada iteración, esto agregará el valor actual de la variable a al vector, que es de 1 a 5.
  9. Imprime algo de texto en la consola.
  10. Utilice una variable iteradora a para iterar sobre los elementos de los números vectoriales desde el principio hasta el elemento más allá del final. Tenga en cuenta que estamos utilizando los iteradores vector::begin() y vector::end().
  11. Imprima los valores a los que apunta la variable iteradora an en la consola para cada iteración.
  12. Imprime algo de texto en la consola. El \n es un carácter de nueva línea, que mueve el cursor a la nueva línea para imprimir desde allí.
  13. Utilice una variable iteradora para iterar sobre los elementos de los números vectoriales desde el principio hasta el elemento más allá del final. Tenga en cuenta que estamos utilizando los iteradores vector::cbegin() y vector::cend().
  14. Imprima los valores señalados por la variable iteradora a en la consola para cada iteración.
  15. La función principal debería devolver un valor si el programa se ejecuta correctamente.
  16. Fin del cuerpo de la función main().

ejemplo 2

#include <iostream>
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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();			
}

Salida:

Modificadores

Aquí hay una captura de pantalla del código:

Modificadores

Explicación del código:

  1. Incluya el archivo de encabezado iostream en nuestro código para usar sus funciones.
  2. Incluya el archivo de encabezado vectorial en nuestro código para usar su funciones.
  3. Incluya el espacio de nombres estándar para usar sus clases sin llamarlo.
  4. Llame a la función principal(). La lógica del programa debe agregarse dentro de su cuerpo.
  5. El inicio del cuerpo de la función main().
  6. Declare un vector llamado nums para almacenar algunos valores enteros.
  7. Almacene 5 elementos en los números vectoriales. Cada uno con un valor de 1.
  8. Imprime algo de texto en la consola.
  9. Utilice una variable iteradora a para iterar sobre los elementos de los números vectoriales.
  10. Imprima los valores de los números vectoriales en la consola para cada iteración.
  11. Agregue el valor 2 al final de los números del vector.
  12. Declare una variable entera n para almacenar el tamaño de los números vectoriales.
  13. Imprima el último valor de los números vectoriales junto con otro texto. Debería devolver un 2.
  14. Elimina el último elemento de los números vectoriales. Los 2 serán eliminados.
  15. Imprime texto en la consola. El \n mueve el cursor a la nueva línea para imprimir el texto allí.
  16. Utilice una variable iteradora a para iterar sobre los elementos de los números vectoriales.
  17. Imprima los valores de los números vectoriales en la consola para cada iteración.
  18. Inserte el valor 7 al comienzo de los números del vector.
  19. Imprima el primer valor de los números vectoriales junto con otro texto. Debería devolver 7.
  20. Elimina todos los elementos de los números vectoriales.
  21. Imprima el tamaño del número de vector junto con otro texto después de borrar todo el contenido. Debería devolver 0.
  22. Fin del cuerpo de la función main().

Capacidad

Usa el siguientewing funciones para determinar la capacidad de un vector:

  • Tamaño() -Devuelve el número de elementos en un vector.
  • Tamaño máximo() -Devuelve la mayor cantidad de elementos que puede almacenar un vector.
  • Capacidad () –Es devuelve la cantidad de espacio de almacenamiento asignado a un vector.
  • Cambiar tamaño () –Es 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.
  • Vacío () –yot devuelve verdadero si un vector está vacío. De lo contrario, devuelve falso.

ejemplo 3

#include <iostream> 
#include <vector> 
using namespace std;
int main() {
	vector<int> 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"<<endl;
	else
		cout << "Vector is empty"<<endl;
	return 0;
}

Salida:

Capacidad

Aquí hay una captura de pantalla del código:

Capacidad

Explicación del código:

  1. Incluya el archivo de encabezado iostream en nuestro código para usar su función.
  2. Incluya el archivo de encabezado vectorial en nuestro código para usar sus funciones.
  3. Incluya el espacio de nombres estándar en nuestro código para usar sus clases sin llamarlo.
  4. Llame a la función principal(). La lógica del programa debe agregarse dentro del cuerpo de esta función.
  5. Cree un vector llamado vector1 para almacenar números enteros.
  6. Utilice un bucle for para crear la variable x con valores del 1 al 10.
  7. Inserte los valores de la variable x en el vector.
  8. Imprime el tamaño del vector junto con otro texto en la consola.
  9. Imprime la capacidad del vector junto con otro texto en la consola.
  10. Imprima la cantidad máxima de elementos que el vector puede contener junto con otro texto en la consola.
  11. Cambie el tamaño del vector para que contenga solo 5 elementos.
  12. Imprime el nuevo tamaño del vector junto con otro texto.
  13. Compruebe si el vector no está vacío.
  14. Imprime texto en la consola si el vector no está vacío.
  15. Utilice una declaración else para indicar qué hacer si el vector está vacío.
  16. Texto para imprimir en la consola si el vector está vacío.
  17. El programa debe devolver valor una vez completado con éxito.
  18. Fin del cuerpo de la función main().

Resumen

  • Un vector de C++ es una matriz dinámica capaz de cambiar su tamaño automáticamente cuando se agrega o elimina un elemento.
  • El contenedor maneja automáticamente el almacenamiento de un vector.
  • Los elementos de un vector se almacenan en un almacenamiento contiguo para poder acceder a ellos y luego recorrerlos mediante iteradores.
  • La inserción de nuevos datos en un vector se realiza al final.
  • La inserción de datos en un vector requiere 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 lleva un tiempo lineal.
  • Se deben utilizar vectores 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.