Merge pull request 'relecture' (#8) from relecture into main

Reviewed-on: #8
main
Alexis Drai 2 years ago
commit 01fc4a5a7a

@ -12,6 +12,7 @@ using namespace std;
Personnage *find_half_dead(int hp, list<Personnage *> &liste)
{
// TODO: Essayez d'utilisez un find_if avec une lambda
for (auto character: liste)
{
if (character->hp() <= hp)
@ -20,6 +21,7 @@ Personnage *find_half_dead(int hp, list<Personnage *> &liste)
}
}
return nullptr;
}
int main()
@ -70,7 +72,7 @@ int main()
cout << endl;
vanime[2]->parler("I'm third");
auto kyle = new Personnage("Kyle", 15);
auto kyle = new Personnage("Kyle", 15); // TODO: delete kenny at some point! J'ai pas gratté mais regardez Valgrind!
vanime.insert(next(vanime.begin()), kyle);
// same as with the list...
@ -104,7 +106,7 @@ int main()
cout << endl << "alpha: " << alpha->name() << " omega: " << omega->name() << endl << endl;
// delete only element only present in vanime
delete kyle;
// delete kyle; // Ça pue. Kyle est détruit mais son pointeur doit encore être présent dans la liste!
auto *otherKenny = new Kenny("Kenny", 12);
anime.push_back(otherKenny);
@ -116,22 +118,10 @@ int main()
}
cout << endl;
auto begin = vanime.begin();
auto end = vanime.end();
for (auto p = begin; p != end; ++p)
{
cout << "typeid(character) == typeid(Kenny): "
<< typeid(*p).name() << "==" << typeid(Kenny).name() << ": "
<< (typeid(*p) == typeid(Kenny))
<< endl << endl;
// FIXME
if (typeid(*p) == typeid(Kenny))
{
vanime.erase(p);
}
}
auto found = remove_if(std::begin(vanime), std::end(vanime),
[](Personnage *p){return dynamic_cast<Kenny*>(p) != nullptr; }
);
vanime.erase(found, std::end(vanime));
for (Personnage *character: anime)
{
@ -194,14 +184,10 @@ int main()
}
}
for (auto character: vanime)
{
if (character->hp() < 3)
{
cout << "found one: " << character->name() << "(" << character << ")" << endl;
break;
}
}
auto pv = 3;
auto harmed = find_if(std::begin(vanime), std::end(vanime), [pv](auto p){ return p->hp() < pv;});
if ( harmed != std::end(vanime) )
cout << "found one harmed: " << (*harmed)->name() << "(" << (*harmed) << ")" << endl;
auto x = find_half_dead(4, anime);
if (x != nullptr)

Loading…
Cancel
Save