Vectores son lo mismo que las matrices dinámicas con la capacidad de cambiar su tamaño automáticamente cuando se inserta o elimina un elemento, y el contenedor maneja su almacenamiento automáticamente.
La función vacía() se utiliza para comprobar si el contenedor del vector está vacío o no.
Sintaxis:
vectorname .empty() Parameters : No parameters are passed. Returns : True, if vector is empty False, Otherwise>
Ejemplos:
Input : myvector = 1, 2, 3, 4, 5 myvector.empty(); Output : False Input : myvector = {} myvector.empty(); Output : True> Complejidad del tiempo – Constante O(1)
Errores y excepciones
1. Tiene una garantía de lanzamiento sin excepción.
2. Muestra error cuando se pasa un parámetro.
CPP
// CPP program to illustrate> // Implementation of empty() function> #include> #include> using> namespace> std;> int> main()> {> >vector<>int>>mivector{};> >if> (myvector.empty())> >{> >cout <<>'True'>;> >}> >else> {> >cout <<>'False'>;> >}> >return> 0;> }> |
>
>Producción
True>
Solicitud :
Dada una lista de números enteros, encuentre la suma de todos los números enteros.
Input : 1, 5, 6, 3, 9, 2 Output : 26 Explanation - 1+5+6+3+9+2 = 26>
Algoritmo
1. Compruebe si el vector está vacío; de lo contrario, agregue el elemento posterior a una variable inicializada como 0 y extraiga el elemento posterior.
2. Repita este paso hasta que el vector esté vacío.
3. Imprima el valor final de la variable.
CPP
// CPP program to illustrate> // Application of empty() function> #include> #include> using> namespace> std;> int> main()> {> >int> sum = 0;> >vector<>int>>mivector{ 1, 5, 6, 3, 9, 2 };> >while> (!myvector.empty())> >{> >sum = sum + myvector.back();> >myvector.pop_back();> >}> >cout << sum;> >return> 0;> }> |
¿Cuándo se inventó la primera computadora?
>
>Producción
26>vector::tamaño()
La función size() se utiliza para devolver el tamaño del contenedor de vectores o el número de elementos en el contenedor de vectores.
Sintaxis:
vectorname .size() Parameters : No parameters are passed. Returns : Number of elements in the container.>
Ejemplos:
Input : myvector = 1, 2, 3, 4, 5 myvector.size(); Output : 5 Input : myvector = {} myvector.size(); Output : 0> Complejidad del tiempo – Constante O(1)
Errores y excepciones
1. Tiene una garantía de lanzamiento sin excepción.
2. Muestra error cuando se pasa un parámetro.
CPP
// CPP program to illustrate> // Implementation of size() function> #include> #include> using> namespace> std;> int> main()> {> >vector<>int>>mivector{ 1, 2, 3, 4, 5 };> >cout << myvector.size();> >return> 0;> }> |
>
>Producción
5>
¿Por qué se prefiere vacío() sobre tamaño()?
A menudo se dice que la función vacía () es preferida a la función tamaño () debido a algunos de estos puntos:
- función vacía() no utiliza ningún operador de comparación , por lo que es más conveniente utilizar
- La función vacía() es implementado en tiempo constante , independientemente del tipo de contenedor, mientras que algunas implementaciones de la función size() requieren una complejidad de tiempo O(n), como list::size().
Solicitud :
Dada una lista de números enteros, encuentre la suma de todos los números enteros.
Input : 1, 5, 6, 3, 9, 2 Output : 26 Explanation - 1+5+6+3+9+2 = 26>
Algoritmo
1. Compruebe si el tamaño del vector es 0; de lo contrario, agregue el elemento posterior a una variable inicializada como 0 y extraiga el elemento posterior.
2. Repita este paso hasta que el tamaño del vector sea 0.
3. Imprima el valor final de la variable.
CPP
conectarse a una base de datos java
// CPP program to illustrate> // Application of size() function> #include> #include> using> namespace> std;> int> main()> {> >int> sum = 0;> >vector<>int>>mivector{ 1, 5, 6, 3, 9, 2 };> >while> (myvector.size()>0) {> >sum = sum + myvector.back();> >myvector.pop_back();> >}> >cout << sum;> >return> 0;> }> |
>
>Producción
26>
Debemos tener cuidado al usar size().
Por ejemplo, considere el siguiente programa:
C++
#include> using> namespace> std;> int> main()> {> >// Initializing a vector of string type> >vector vec = {>'Geeks'>,>'For'>,>'Geeks'> };> >for> (>int> i = 0 ; i <= vec.size() - 1 ; i++)> >cout << vec[i] <<>' '>;> >return> 0;> }> |
>
>Producción
Geeks For Geeks>
El programa anterior funciona bien pero ahora consideremos el siguiente programa:
C++
#include> using> namespace> std;> int> main()> {> >// Initializing a vector of string type> >vector vec = {>'Geeks'>,>'For'>,>'Geeks'> };> >vec.clear();> >for> (>int> i = 0; i <= vec.size() - 1; i++)> >cout << vec[i] <<>' '>;> >cout <<>'Geeks For Geeks'>;> >return> 0;> }> |
>
edad de kylie jenner
>
Producción:
Fallo de segmentación SIGEGV
Al compilar el programa anterior, obtenemos un error de segmentación (SIGSEGV) porque el tipo de retorno de size() es size_t, que es un alias para unsigned long int.-> unsigned long int var = 0;-> cout
entonces estamos haciendo un bucle desde i = 0 a i = 18446744073709551615 en el programa anterior
Ahora considere el escenario en el que estamos eliminando elementos de nuestro contenedor inicializado y después de una secuencia de operaciones nuestro contenedor queda vacío y, por último, estamos imprimiendo el contenido de nuestro contenedor utilizando el método anterior. Definitivamente, conducirá a una falla de segmentación (SIGSEGV).
¿Como arreglarlo?
Es recomendable encasillar contenedor.size() a tipo entero para evitar un error de segmentación (SIGSEGV).
C++
#include> using> namespace> std;> int> main()> {> >// Initializing a vector of string type> >vector vec = {>'Geeks'>,>'For'>,>'Geeks'> };> > >// Clearing the vector> >// Now size is equal to 0> >vec.clear();> > >// Typecasting vec.size() to int> >for> (>int> i = 0; i <(>int>)vec.size() - 1; i++)> >cout << vec[i] <<>' '>;> >cout <<>'Geeks For Geeks'>;> >return> 0;> }> // This code is contributed by Bhuwanesh Nainwal> |
>
>Producción
Geeks For Geeks>