J'essaie d'effacer certaines anciennes données d'un vecteur 3D en utilisant iterator
. Voici un morceau de mon code, lié à ceci:effacement d'éléments à partir d'un vecteur multidimensionnel
vector< vector<vector <int> > > vol;
vector< vector< vector<int> > >::iterator row;
vector< vector<int> >::iterator col;
vector<int>::iterator dep;
for (row = this->vol.begin(); row != this->vol.end(); ++row)
{
for (col = row->begin(); col != row->end(); ++col)
{
for (dep = col->begin(); dep != col->end(); ++dep)
{
if (*dep <= date - 10) {
dep = this->vol.erase(dep);
}
}
}
mais je reçois l'erreur du compilateur:
no matching function for call to ‘std::vector<std::vector<std::vector<int> > >::erase(std::vector<int>::iterator&)’
Qu'est-ce que je fais mal?
Merci
Merci Nathan. Que faire si j'ai besoin de supprimer tous les éléments de la troisième dimension au lieu d'un seul? –
@ em.ech Si vous voulez que le vecteur entier que 'col' représente soit effacé, alors vous avez juste besoin de' col-> clear(); – NathanOliver