Effacer des éléments de std::vector par index
En C, std::vector est un conteneur qui stocke efficacement les éléments dans une mémoire contiguë emplacements. Pour supprimer des éléments d'un vecteur, la fonction d'effacement est utilisée.
Problème : Étant donné un std::vector, la suppression de l'élément à un emplacement spécifique index.
Exemple :
std::vector<int> vec; vec.push_back(6); vec.push_back(-17); vec.push_back(12); vec.erase(???); // How to delete the second element?
Solution :
Pour effacer un seul élément par index, utilisez std : :next pour incrémenter l'itérateur vectoriel de l'index souhaité :
vec.erase(std::next(vec.begin(), elementIndex));
Pour effacer une plage d'éléments, spécifiez les itérateurs de début et de fin :
int startIndex = 1; int endIndex = 3; vec.erase(std::next(vec.begin(), startIndex), std::next(vec.begin(), endIndex));
Dans l'exemple fourni, le code suivant supprimera le deuxième élément (vec[1]) :
vec.erase(std::next(vec.begin()));
Pour supprimer le deuxième et troisièmes éléments, utilisez :
vec.erase(std::next(vec.begin(), 1), std::next(vec.begin(), 3));
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!