Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <map>
- struct Employee {
- const std::string name = "";
- unsigned int age = 0;
- std::vector<double> wages;
- Employee(std::string n="Sanya", unsigned int a=17, std::vector<double> w= {0}) : name(n), age(a), wages(w) {};
- };
- class EmployeeRegister {
- std::map<std::string, Employee*> table;
- void createNewEmployee(std::string& name, unsigned int age, std::vector<double>& wages);
- void freeAll();
- Employee* findEmployee(std::string name);
- Employee** exportAllEmployees();
- };
- void EmployeeRegister::createNewEmployee(std::string& name, unsigned int age, std::vector<double>& wages)
- {
- Employee* var = new Employee (name, age, wages);
- table[name] = var;
- }
- void EmployeeRegister::freeAll()
- {
- for (std::map<std::string, Employee*>::iterator it = table.begin(); it != table.end(); it++)
- {
- delete it->second;
- table.erase(it);
- }
- }
- Employee* EmployeeRegister::findEmployee(std::string name)
- {
- std::map<std::string, Employee*>::iterator it = table.find(name);
- if (it != table.end())
- return it->second;
- else return nullptr;
- }
- Employee** EmployeeRegister::exportAllEmployees()
- {
- Employee** var = new Employee*[table.size()];
- int i = 0;
- for (std::map<std::string, Employee*>::iterator it = table.begin(); it != table.end(); it++)
- {
- var[i] = it->second;
- i++;
- }
- return var;
- }
- int main() {
- Employee var = Employee("age");
- Employee vor;
- Employee vyr{"aaa",15,{2.3333}};
- std::cout << var.name << " " << var.age << " " << var.wages[0] << '\n';
- std::cout << vor.name << " " << vor.age << " " << vor.wages[0] << '\n';
- std::cout << vyr.name << " " << vyr.age << " " << vyr.wages[0] << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement