vector::push_back() y vector::pop_back() en C++ STL
Vectores son iguales 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 automáticamente su almacenamiento.
vector::push_back()La función push_back() se utiliza para insertar elementos en un vector desde atrás. El nuevo valor se inserta en el vector al final, después del último elemento actual y el tamaño del contenedor aumenta en 1.
Sintaxis:
vectorname.push_back(value) Parameters : The value to be added in the back is passed as the parameter Result : Adds the value mentioned as the parameter to the back of the vector named as vectorname
Ejemplos:
Input: myvector = {1, 2, 3, 4, 5}; myvector.push_back(6); Output: 1, 2, 3, 4, 5, 6 Input: myvector = {5, 4, 3, 2, 1}; myvector.push_back(0); Output: 5, 4, 3, 2, 1, 0 Errores y excepciones
1. Fuerte garantía de excepción: si se lanza una excepción, no hay cambios en el contenedor.
2. Si el valor pasado como argumento no es compatible con el vector, muestra un comportamiento indefinido.
C++
// CPP program to illustrate> // push_back() function> #include> #include> using> namespace> std;> > int> main()> {> > vector <> int> >mivector{ 1, 2, 3, 4, 5 };> > myvector.push_back(6);> > > // Vector becomes 1, 2, 3, 4, 5, 6> > > for> (> auto> it = myvector.begin(); it != myvector.end(); ++it)> > cout < <> ' '> < < *it;> }> |
Producción
1 2 3 4 5 6vector::pop_back()()
La función pop_back() se utiliza para resaltar o eliminar elementos de un vector desde la parte posterior. El valor se elimina del vector desde el final y el tamaño del contenedor se reduce en 1.
Sintaxis:
vectorname.pop_back() Parameters : No parameters are passed Result : Removes the value present at the end or back of the given vector named as vectorname
Ejemplos:
Input : myvector = {1, 2, 3, 4, 5}; myvector.pop_back(); Output :1, 2, 3, 4 Input : myvector = {5, 4, 3, 2, 1}; myvector.pop_back(); Output :5, 4, 3, 2 Errores y excepciones
1. Garantía de no lanzamiento: si el contenedor no está vacío, la función nunca genera excepciones.
2. Si el vector está vacío, muestra un comportamiento indefinido.
C++
// CPP program to illustrate> // pop_back() function> #include> #include> using> namespace> std;> > int> main()> {> > vector <> int> >mivector{ 1, 2, 3, 4, 5 };> > myvector.pop_back();> > > // Vector becomes 1, 2, 3, 4> > > for> (> auto> it = myvector.begin(); it != myvector.end(); ++it)> > cout < <> ' '> < < *it;> }> |
Producción
1 2 3 4
¿Pop_back() elimina valores junto con elementos?
Cuando se llama a la función pop_back(), se elimina el último elemento, valores y elementos son lo mismo en este caso. Se llama al destructor del objeto almacenado y la longitud del vector se elimina en 1. Si la capacidad del contenedor no se reduce, aún puede acceder a la ubicación de memoria anterior, pero en este caso, no sirve de nada acceder a una ubicación ya extraída. elemento, ya que resultará en una comportamiento indefinido .
Solicitud: push_back() y pop_back()
Dado un vector vacío, agréguele números enteros usando la función push_back y luego calcule su tamaño.
Input : 1, 2, 3, 4, 5, 6 Output : 6
Algoritmo
1. Agregue elementos al vector usando la función push_back
2. Compruebe si el tamaño del vector es 0; de lo contrario, incremente la variable del contador inicializada como 0 y extraiga el elemento posterior.
3. Repita este paso hasta que el tamaño del vector sea 0.
4. Imprima el valor final de la variable.
C++
// CPP program to illustrate> // Application of push_back and pop_back function> #include> #include> using> namespace> std;> > int> main()> {> > int> count = 0;> > vector <> int> >mivector;> > myvector.push_back(1);> > myvector.push_back(2);> > myvector.push_back(3);> > myvector.push_back(4);> > myvector.push_back(5);> > myvector.push_back(6);> > while> (!myvector.empty()) {> > count++;> > myvector.pop_back();> > }> > cout < < count;> > return> 0;> }> |
Producción
6
Veamos las diferencias en forma tabular como se muestra a continuación:
| vector::push_back() | vector::pop_back() |
| Se utiliza para agregar un nuevo elemento al final del vector. | Se utiliza para eliminar un nuevo elemento al final del vector. |
| Su sintaxis es -: push_back(valor); | Su sintaxis es -: pop_back(); |
| Su parámetro es el valor que queremos agregar al final del vector. | No requiere ningún parámetro. |
| No tiene ningún tipo de devolución. | No tiene ningún valor de retorno. |
| Su complejidad es constante. | Su complejidad es constante. |