Los arreglos de C++ no pueden cambiar su tamaño en tiempo de ejecución, pero los vectores sí.
En este post voy a explicar cómo agregar o insertar un elemento a un vector en C++ usando los métodos push_back
e insert
, los cuales agregan elementos al vector pero de distintas maneras: uno pone el elemento al final, y otro lo agrega en determinado índice.
También veremos cómo agregar un elemento al inicio, en la penúltima posición, en la segunda o en cualquier índice.
La función push_back inserta un elemento al final del vector, es decir, agrega el elemento.
Su sintaxis es:
vector.push_back(valor);
Como en el siguiente ejemplo:
std::vector<int> numeros;
// Se agregan al final con push_back
numeros.push_back(50);
numeros.push_back(70);
numeros.push_back(80);
La desventaja es que no podemos insertarlos en otra posición más que al final.
La función insert inserta un elemento dentro del vector pero permite especificar un índice, o no tanto un índice, sino una posición que se puede obtener con vector.end()
y vector.begin()
como cuando recorrimos vectores.
Al obtener estos punteros podemos operar con los mismos e insertar el elemento en otra posición. Veamos el ejemplo:
std::vector<int> numeros;
// Insertar al inicio
numeros.insert(numeros.begin(), 100);
// Insertar en la posición 1
numeros.insert(numeros.begin() + 1, 500);
// Insertar en la penúltima posición
numeros.insert(numeros.end() - 1, 1000);
De esta manera podemos insertar elementos en cualquier posición del vector.
El código que inserta elementos con insert y push_back se ve a continuación. También se imprimen todos los elementos para demostrar que los elementos se insertan en la posición requerida.
Lo hicimos con un vector de enteros pero podría ser de otro tipo.
#include <iostream>
#include <vector>
int main() {
std::vector<int> numeros;
// Se agregan al final con push_back
numeros.push_back(50);
numeros.push_back(70);
numeros.push_back(80);
// Imprimirlos para ver contenido
std::cout << "Imprimiendo" << std::endl;
for (std::size_t i = 0; i < numeros.size(); i++) {
std::cout << numeros[i] << std::endl;
}
// Ahora con insert.
// Insertar al inicio
numeros.insert(numeros.begin(), 100);
// Insertar en la posición 1
numeros.insert(numeros.begin() + 1, 500);
// Insertar en la penúltima posición
numeros.insert(numeros.end() - 1, 1000);
// Imprimirlos para ver contenido
std::cout << "Imprimiendo" << std::endl;
for (std::size_t i = 0; i < numeros.size(); i++) {
std::cout << numeros[i] << std::endl;
}
}
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.
Ver comentarios
Gracias por la ayuda :)