void Champion::updateModifiers(std::map<std::string, std::vector<StatModifier *> > &modiferMap) { std::map<std::string, std::vector<StatModifier*>>::iterator mapIter; std::vector<StatModifier*>::iterator modIter; for (mapIter = modiferMap.begin(); mapIter != modiferMap.end(); ++mapIter) { std::vector<StatModifier*> *currentMods = &mapIter->second; for (modIter = currentMods->begin(); modIter != currentMods->end();) { StatModifier *modifier = (*modIter); modifier->update(); if (modifier->hasExpired()) { currentMods->erase(modIter); std::cout << "modified removed \n"; delete modifier; } else { ++modIter; } } } }