j'ai les données membres suivantsC++ problèmes iterator
vector<State<T>*> activeChildren;
Je veux nettoyer jusqu'à ces pointeurs dans mon destructor
StateContainer<T>::~StateContainer() {
vector<State<T>*>::iterator it =
activeChildren.begin();
while(it!=activeChildren.end()) {
State<T>* ptr = *it;
it = activeChildren.erase(it);
delete ptr;
}
}
Je reçois l'erreur suivante de g ++ 4.3.2 sur Ubuntu:
./fsm2/StateContainer.cpp: In destructor ‘virtual ervan::StateContainer<T>::~StateContainer()’:
../fsm2/StateContainer.cpp:24: error: expected `;' before ‘it’
../fsm2/StateContainer.cpp:25: error: ‘it’ was not declared in this scope
Quelqu'un peut-il me dire ce que j'ai mal fait? Je reçois cette erreur dans deux endroits où j'utilise des boucles de iterator, mais pas quand je l'utilise for_each (...)
On dirait un bon endroit à utiliser boost :: ptr_vector> –