Tôi có dữ liệu thành viên sauC++ vấn đề iterator
vector<State<T>*> activeChildren;
Tôi muốn để làm sạch-up những gợi ý trong destructor của tôi
StateContainer<T>::~StateContainer() {
vector<State<T>*>::iterator it =
activeChildren.begin();
while(it!=activeChildren.end()) {
State<T>* ptr = *it;
it = activeChildren.erase(it);
delete ptr;
}
}
tôi nhận được lỗi sau từ g ++ 4.3.2 trên 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
Bất cứ ai có thể cho tôi biết tôi đã làm gì sai? Tôi nhận được lỗi này ở hai nơi nhiều nơi tôi sử dụng vòng lặp, nhưng không phải khi tôi sử dụng for_each (...)
Có vẻ như một nơi tốt để sử dụng boost :: ptr_vector> –