fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4. #include <list>
  5.  
  6. using namespace std;
  7.  
  8. struct employee
  9. {
  10. employee(char* f, char* l) : name(f), lastname(l) {}
  11. std::string name;
  12. std::string lastname;
  13. std::string get_name() { return name; }
  14. std::string get_lastname() { return lastname; }
  15. };
  16.  
  17. list<employee> employees;
  18.  
  19. list<employee> remove_employees(const string& name,
  20. const string& lastname)
  21. {
  22.  
  23.  
  24. list<employee> listOfRemoved;
  25. list<employee>::iterator it;
  26.  
  27. for(it=employees.begin(); it != employees.end(); )
  28. {
  29. if(it->get_name() == name && it->get_lastname() ==lastname)
  30. {
  31. listOfRemoved.push_back(*it);
  32. it = employees.erase(it);
  33. }
  34. else
  35. it++;
  36.  
  37. }
  38. return listOfRemoved;
  39. }
  40.  
  41. int main()
  42. {
  43. employees.push_back(employee("1", "2"));
  44. employees.push_back(employee("3", "4"));
  45. employees.push_back(employee("5", "6"));
  46. employees.push_back(employee("fred", "bloggs"));
  47. employees.push_back(employee("7", "8"));
  48.  
  49. for (std::list<employee>::iterator i = employees.begin();
  50. i != employees.end();
  51. i++)
  52. {
  53. std::cout << i->lastname << "\n";
  54. }
  55.  
  56. remove_employees("fred", "bloggs");
  57.  
  58. std::cout << "\n\n";
  59. for (std::list<employee>::iterator i = employees.begin();
  60. i != employees.end();
  61. i++)
  62. {
  63. std::cout << i->lastname << "\n";
  64. }
  65.  
  66. return 0;
  67. }
  68.  
Success #stdin #stdout 0.01s 2860KB
stdin
Standard input is empty
stdout
2
4
6
bloggs
8


2
4
6
8