Я не могу понять это;Недавно я начал использовать std::for_each
, но эту проблему решить очень трудно
Я получаю сообщение об ошибке для кода ниже:
**no instance of overloaded function "std::vector<_Ty, _Alloc>::push_back [with _Ty=CharacterObject *, _Alloc=std::allocator<CharacterObject *>]" matches the argument list**
код:
class Stuff
{
};
std::vector< Stuff* > list;
list.push_back(new Stuff());
list.push_back(new Stuff());
list.push_back(new Stuff());
std::vector< Stuff* > stuffs;
std::for_each(list.begin(), list.end(), [this,level, stuff](Stuff &stuff)
{
... // some conditions here
stuffs.push_back(stuff); << error
stuffs.push_back(&stuff); << also throws an error
});
Я пробовал много разных комбинаций, но с ошибками шаблона STL трудно что-либо придумать
Любая помощь, конечно, высоко ценится
sheers
[edit: там, работает какАхарм и отсутствие необходимости в недобросовестности я считаю крайне неприятным]
for (std::vector< CharacterObject* >::iterator it = spawnedCharactersObjects.begin(); it != spawnedCharactersObjects.end(); ++it)
{
CharacterObject* characterObject = *it;
if (characterObject->getLevel() == level)
{
characterObjects.push_back(characterObject);
}
}