Doublons possibles:
Vector.erase(Iterator) causes bad memory access
iterate vector, remove certain items as I go.supprimer tout itérer
Salut, J'ai écrit cela, mais je suis obtenir des erreurs lors de l'exécution, il
for (vector< vector<Point> >::iterator track = tracks_.begin(); track != tracks_.end(); track++) {
if (track->empty()) { // if track is empty, remove it
tracks_.erase(track);
track++; // is this ok?
}else { //if there are points, deque
track->erase(track->begin()); //my program crashes here after a while... ;(
}
}
I avoir un vecteur de vecto r de points (2 ints) dont j'appelle les pistes (1 piste est 1 vecteur de points) Je veux vérifier chaque piste et si elles contiennent des points puis supprimer le premier sinon supprimer la piste. Est-ce correct?
Merci d'avance.
Quelles erreurs obtenez-vous? –
Ce genre de question a déjà été posée plusieurs fois. Le premier résultat de la recherche de "C++ Erase Iterator" est http://stackoverflow.com/questions/2943912/vector-eraseiterator-causes-bad-memory-access qui répond également à cette question. – TheUndeadFish
@ nacho4d: Pas directement lié, mais jetez un oeil à Boost MultiArray pour les structures bidimensionnelles. C'est un peu plus facile à utiliser qu'un type 'std :: vector>'. –
lunaryorn