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>