c++ - Finding a specific item in a list -
first of all, know vector easier this. however, class , list helps sorting. now, have list of pointers sprite objects. start second item in list , run methods on them i'm not sure how start 2nd item, , how access sprites functions within list.
here code in question.
list<sprite*>::iterator iter = sprites.begin(); iter++; iter++; while (iter != sprites.end()) //missile movement { dynamic_cast<missile*>(sprites[iter])->update(); if (!dynamic_cast<missile*>(sprites[iter])->getactive()) { delete sprites[iter]; sprites.erase(iter--); } iter++; } currently code set use vector of sprite pointers. cannot use current code call update or getactive on objects. can guys me understand how change syntax change sprites list?
list<sprite*>::iterator iter = sprites.begin(); if (sprites.size() < 2) throw std::runtime_error("too few sprites"); iter++; iter++; while (iter != sprites.end()) //missile movement { if (missile* p = dynamic_cast<missile*>(*iter)) { p->update(); if (!p->getactive()) { delete p; iter = sprites.erase(iter); } else ++iter; } else std::cerr << "warn: sprite not missile\n"; }
Comments
Post a Comment