Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. struct Employee {
  5. const std::string name = "";
  6. unsigned int age = 0;
  7. std::vector<double> wages;
  8. Employee(std::string n="Sanya", unsigned int a=17, std::vector<double> w= {0}) : name(n), age(a), wages(w) {};
  9.  
  10. };
  11.  
  12.  
  13. class EmployeeRegister {
  14. std::map<std::string, Employee*> table;
  15. void createNewEmployee(std::string& name, unsigned int age, std::vector<double>& wages);
  16. void freeAll();
  17. Employee* findEmployee(std::string name);
  18. Employee** exportAllEmployees();
  19. };
  20.  
  21. void EmployeeRegister::createNewEmployee(std::string& name, unsigned int age, std::vector<double>& wages)
  22. {
  23. Employee* var = new Employee (name, age, wages);
  24. table[name] = var;
  25. }
  26.  
  27. void EmployeeRegister::freeAll()
  28. {
  29. for (std::map<std::string, Employee*>::iterator it = table.begin(); it != table.end(); it++)
  30. {
  31. delete it->second;
  32. table.erase(it);
  33. }
  34. }
  35.  
  36. Employee* EmployeeRegister::findEmployee(std::string name)
  37. {
  38. std::map<std::string, Employee*>::iterator it = table.find(name);
  39. if (it != table.end())
  40. return it->second;
  41. else return nullptr;
  42. }
  43.  
  44. Employee** EmployeeRegister::exportAllEmployees()
  45. {
  46. Employee** var = new Employee*[table.size()];
  47. int i = 0;
  48. for (std::map<std::string, Employee*>::iterator it = table.begin(); it != table.end(); it++)
  49. {
  50. var[i] = it->second;
  51. i++;
  52. }
  53. return var;
  54. }
  55.  
  56. int main() {
  57.  
  58. Employee var = Employee("age");
  59. Employee vor;
  60. Employee vyr{"aaa",15,{2.3333}};
  61. std::cout << var.name << " " << var.age << " " << var.wages[0] << '\n';
  62. std::cout << vor.name << " " << vor.age << " " << vor.wages[0] << '\n';
  63. std::cout << vyr.name << " " << vyr.age << " " << vyr.wages[0] << '\n';
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement