Comment supprimer un élément d'un std::vector par index en C++ ?
Bonjour, collègues ! Je suis débutant en C++ et j'ai rencontré un problème en travaillant avec std::vector. Je dois supprimer un élément par son index, mais je n'arrive pas à trouver la bonne méthode.
Voici mon code :
```cpp
#include
#include
int main() {
std::vector numbers = {10, 20, 30, 40, 50};
int index_to_remove = 2; // Je veux supprimer l'élément 30
// J'essaie d'utiliser erase, mais je ne sais pas comment passer l'index
// numbers.erase(index_to_remove); // Erreur de compilation
// J'essaie avec un itérateur
numbers.erase(numbers.begin() + index_to_remove);
for (int n : numbers) {
std::cout << n << " ";
}
// Attendu : 10 20 40 50, mais le code plante ou se comporte étrangement
return 0;
}
```
J'ai lu la documentation, mais je suis toujours confus. Pourquoi `erase` n'accepte-t-il pas simplement un nombre ? Et faut-il toujours utiliser `begin() + index` ? Que se passe-t-il si l'index est hors limites ? Comment gérer correctement les erreurs ? Je serais reconnaissant pour une explication détaillée avec des exemples.