Vector en C++ Biblioteca de plantillas estándar (STL) con ejemplo
¿Qué es un vector C++?
Un Vector C++ es una matriz dinámica capaz de cambiar su tamaño automáticamente. El cambio de tamaño se produce después de agregar o eliminar un elemento del vector. El almacenamiento es manejado automáticamente por el contenedor. Los elementos de un vector se almacenan en almacenamiento contiguo. Esto permite a los programadores de C++ acceder y recorrer los elementos del vector usando iteradores.
La inserción de nuevos datos a un vector se realiza en su extremo. Esto requiere un tiempo diferencial. La eliminación de un elemento de un vector requiere un tiempo constante. La razón es que no hay necesidad de cambiar el tamaño del vector. La inserción o eliminación de un elemento al principio del vector lleva 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:
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 la cantidad de elementos para 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 de C++:
- vector::begin(): da un iterador que apunta al primer elemento del vector.
- vector::fin(): da un iterador que apunta al elemento pasado-el-fin 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 un rango de elementos de la ubicación especificada.
- vector::clear(): Elimina todos los elementos vectoriales.
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:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
- Incluya el archivo de encabezado de vector 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.
- Llama 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 para ayudarnos a iterar sobre el vector. La variable nos ayudará a iterar sobre los elementos del vector, desde el 1 st al 5 th elementos.
- Inserte elementos en el vector num desde atrás. Para cada iteración, esto agregará el valor actual de la variable a al vector, que es de 1 a 5.
- Imprime algo de texto en la consola
- Use una variable iteradora a para iterar sobre los elementos de vector nums desde el principio hasta el último elemento. Tenga en cuenta que estamos usando los iteradores vector::begin() y vector::end().
- Imprime los valores a los que apunta la variable del iterador en la consola para cada iteración.
- Imprime algo de texto en la consola. El \n es un carácter de nueva línea, moviendo el cursor a la nueva línea para imprimir desde allí.
- Use una variable iteradora para iterar sobre los elementos de vector nums desde el principio hasta el último elemento. Tenga en cuenta que estamos usando los iteradores vector::cbegin() y vector::cend().
- Imprime los valores a los que apunta la variable iteradora 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 <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:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado 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.
- Llama a la función main(). La lógica del programa debe agregarse dentro de su cuerpo.
- El comienzo del cuerpo de la función main().
- Declare un vector llamado nums para almacenar algunos valores enteros.
- Almacene 5 elementos en el vector nums. 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 del vector nums.
- Imprima los valores de números vectoriales en la consola para cada iteración.
- Agregue el valor 2 al final del vector nums.
- 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.
- Eliminar el último elemento del vector nums. Los 2 serán eliminados.
- Imprimir texto en la consola. El \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 del vector nums.
- Imprima los valores de números vectoriales en la consola para cada iteración.
- Inserte el valor 7 al principio del vector nums.
- Imprime el primer valor del vector nums junto con otro texto. Debería devolver 7.
- Eliminar todos los elementos del vector nums.
- 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
Use las siguientes funciones para determinar la capacidad de un vector:
- Tamaño() – Devuelve el número de elementos en un vector.
- Tamaño_máximo() -Devuelve el mayor número de elementos que puede almacenar un vector.
- Capacidad () –It devuelve la cantidad de espacio de almacenamiento asignado a un vector.
- Redimensionar () –It 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 más pequeño que n, se agregarán elementos adicionales en la parte posterior del vector.
- Vacío () –i t devuelve verdadero si un vector está vacío. De lo contrario, devuelve false.
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:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado 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 estándar en nuestro código para usar sus clases sin llamarlo.
- Llama 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 números enteros.
- Use un bucle for para crear la variable x con valores del 1 al 10.
- Introduzca 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.
- Imprime el número máximo 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.
- Imprime el nuevo tamaño del vector junto con otro texto.
- Compruebe si el vector no está vacío.
- Imprimir texto en la consola si el vector no está vacío.
- Utilice 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 al completarse 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 contenedor gestiona automáticamente el almacenamiento de un vector.
- Los elementos de un vector se almacenan en 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.
- Los vectores deben usarse cuando se trata de elementos de datos que cambian constantemente.
- Además, puede usar vectores si no conoce el tamaño de los datos antes de comenzar.
Lenguaje C
- Funciones de biblioteca estándar de C
- Operadores en C++ con Ejemplo:Qué es, Tipos y Programas
- C++ do...while bucle con ejemplos
- Declaración de caso de cambio de C ++ con EJEMPLO
- C++ Asignación dinámica de arreglos con ejemplo
- Punteros de C++ con ejemplos
- Sobrecarga de operadores de C++ con ejemplos
- Estructura C++ con ejemplo
- std::list en C++ con ejemplo
- Funciones de C++ con ejemplos de programas
- Diferencia entre estructura y clase:explicada con el ejemplo de C++