#include <iostream>
#include <string>
#include <algorithm>
#include <list>
using namespace std;
struct employee
{
employee(char* f, char* l) : name(f), lastname(l) {}
std::string name;
std::string lastname;
std::string get_name() { return name; }
std::string get_lastname() { return lastname; }
};
list<employee> employees;
list<employee> remove_employees(const string& name,
const string& lastname)
{
list<employee> listOfRemoved;
list<employee>::iterator it;
for(it=employees.begin(); it != employees.end(); )
{
if(it->get_name() == name && it->get_lastname() ==lastname)
{
listOfRemoved.push_back(*it);
it = employees.erase(it);
}
else
it++;
}
return listOfRemoved;
}
int main()
{
employees.push_back(employee("1", "2"));
employees.push_back(employee("3", "4"));
employees.push_back(employee("5", "6"));
employees.push_back(employee("fred", "bloggs"));
employees.push_back(employee("7", "8"));
for (std::list<employee>::iterator i = employees.begin();
i != employees.end();
i++)
{
std::cout << i->lastname << "\n";
}
remove_employees("fred", "bloggs");
std::cout << "\n\n";
for (std::list<employee>::iterator i = employees.begin();
i != employees.end();
i++)
{
std::cout << i->lastname << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bGlzdD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgZW1wbG95ZWUKewogICAgZW1wbG95ZWUoY2hhciogZiwgY2hhciogbCkgOiBuYW1lKGYpLCBsYXN0bmFtZShsKSB7fQogICAgc3RkOjpzdHJpbmcgbmFtZTsKICAgIHN0ZDo6c3RyaW5nIGxhc3RuYW1lOwogICAgc3RkOjpzdHJpbmcgZ2V0X25hbWUoKSB7IHJldHVybiBuYW1lOyB9CiAgICBzdGQ6OnN0cmluZyBnZXRfbGFzdG5hbWUoKSB7IHJldHVybiBsYXN0bmFtZTsgfQp9OwoKbGlzdDxlbXBsb3llZT4gZW1wbG95ZWVzOwoKbGlzdDxlbXBsb3llZT4gcmVtb3ZlX2VtcGxveWVlcyhjb25zdCBzdHJpbmcmIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBsYXN0bmFtZSkgCnsKCgogICAgbGlzdDxlbXBsb3llZT4gbGlzdE9mUmVtb3ZlZDsgCiAgICBsaXN0PGVtcGxveWVlPjo6aXRlcmF0b3IgaXQ7IAoKICAgIGZvcihpdD1lbXBsb3llZXMuYmVnaW4oKTsgaXQgIT0gZW1wbG95ZWVzLmVuZCgpOyApCiAgICB7CiAgICAgICAgaWYoaXQtPmdldF9uYW1lKCkgPT0gbmFtZSAmJiBpdC0+Z2V0X2xhc3RuYW1lKCkgPT1sYXN0bmFtZSkgCiAgICAgICAgewogICAgICAgICAgICBsaXN0T2ZSZW1vdmVkLnB1c2hfYmFjaygqaXQpOyAKICAgICAgICAgICAgaXQgPSBlbXBsb3llZXMuZXJhc2UoaXQpOyAKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICBpdCsrOwoKICAgIH0KICAgIHJldHVybiBsaXN0T2ZSZW1vdmVkOyAKfQoKaW50IG1haW4oKQp7CiAgICBlbXBsb3llZXMucHVzaF9iYWNrKGVtcGxveWVlKCIxIiwgIjIiKSk7CiAgICBlbXBsb3llZXMucHVzaF9iYWNrKGVtcGxveWVlKCIzIiwgIjQiKSk7CiAgICBlbXBsb3llZXMucHVzaF9iYWNrKGVtcGxveWVlKCI1IiwgIjYiKSk7CiAgICBlbXBsb3llZXMucHVzaF9iYWNrKGVtcGxveWVlKCJmcmVkIiwgImJsb2dncyIpKTsKICAgIGVtcGxveWVlcy5wdXNoX2JhY2soZW1wbG95ZWUoIjciLCAiOCIpKTsKCiAgICBmb3IgKHN0ZDo6bGlzdDxlbXBsb3llZT46Oml0ZXJhdG9yIGkgPSBlbXBsb3llZXMuYmVnaW4oKTsKICAgICAgICAgaSAhPSBlbXBsb3llZXMuZW5kKCk7CiAgICAgICAgIGkrKykKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgaS0+bGFzdG5hbWUgPDwgIlxuIjsKICAgIH0KCiAgICByZW1vdmVfZW1wbG95ZWVzKCJmcmVkIiwgImJsb2dncyIpOwoKICAgIHN0ZDo6Y291dCA8PCAiXG5cbiI7CiAgICBmb3IgKHN0ZDo6bGlzdDxlbXBsb3llZT46Oml0ZXJhdG9yIGkgPSBlbXBsb3llZXMuYmVnaW4oKTsKICAgICAgICAgaSAhPSBlbXBsb3llZXMuZW5kKCk7CiAgICAgICAgIGkrKykKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgaS0+bGFzdG5hbWUgPDwgIlxuIjsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=