Cómo eliminar un elemento de std::vector por índice en C++?
¡Hola, colegas! Soy nuevo en C++ y me encontré con un problema al trabajar con std::vector. Necesito eliminar un elemento por su índice, pero no encuentro la forma correcta.
Aquí está mi código:
```cpp
#include
#include
int main() {
std::vector numbers = {10, 20, 30, 40, 50};
int index_to_remove = 2; // Quiero eliminar el elemento 30
// Intento usar erase, pero no sé cómo pasar el índice
// numbers.erase(index_to_remove); // Error de compilación
// Pruebo con iterador
numbers.erase(numbers.begin() + index_to_remove);
for (int n : numbers) {
std::cout << n << " ";
}
// Espero: 10 20 40 50, pero el código falla o se comporta de forma extraña
return 0;
}
```
Leí la documentación, pero aún así me confundo. ¿Por qué `erase` no acepta simplemente un número? ¿Y siempre es necesario usar `begin() + index`? ¿Qué pasa si el índice está fuera de los límites? ¿Cómo manejar errores correctamente? Agradecería una explicación detallada con ejemplos.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs