#include #include //STARTSOLUTION #include // #include // #include // #include // //ENDSOLUTION using namespace std; class Minion { public: string name{}; int power{}; int evilness{}; }; //STARTSOLUTION // ostream& operator<<(ostream & os, Minion const& minion) { return os << minion.name; } // int power(Minion const& m) { return m.power * m.evilness; } //ENDSOLUTION int main() { vector minions{}; minions.push_back(Minion{"Minion1", 4, 4}); minions.push_back(Minion{"Minion2", 4, -1}); minions.push_back(Minion{"Minion3", 5, 3}); minions.push_back(Minion{"Minion4", 2, 7}); minions.push_back(Minion{"Minion5", 14, 1}); //STARTSOLUTION // vector minions_to_keep{}; vector minions_to_fire{}; copy_if(minions.begin(), minions.end(), std::back_inserter(minions_to_keep), [](Minion const& m) -> bool {return power(m) > 14;}); minions.erase( remove_if(minions.begin(), minions.end(), [](Minion const& m) -> bool {return (power(m) > 14);}), minions.end()); minions_to_fire = minions; cout << "Minions to keep vector:" << '\n'; copy(minions_to_keep.begin(), minions_to_keep.end(), ostream_iterator(std::cout, "\n")); cout << '\n'; cout << "Minions to fire vector:" << '\n'; copy(minions_to_fire.begin(), minions_to_fire.end(), ostream_iterator(std::cout, "\n")); cout << '\n'; cout.flush(); //ENDSOLUTION } //STARTSOLUTION /* Observera att denna lösning inte hade varit godkänd för att skriva ut vectorerna for( auto m: minions_to_fire ) { cout << m.name << '\n'; } */ //ENDSOLUTION