Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CarsRegister
- {
- private:
- static vector<Person*> personsByName[26];
- /////
- static void clearPersonsByName()
- {
- for (int i = 0; i < 26; i++)
- {
- while (!personsByName[i].empty())
- {
- personsByName[i].erase(personsByName[i].end()-1);
- }
- personsByName[i].clear();
- }
- }
- /////
- static void addPersonToNamesList(Person * person)
- {
- int start_letter_index = (int)(tolower(person->getName()[0])) - 97;
- if (start_letter_index >= 0 && start_letter_index <= 25)
- {
- personsByName[start_letter_index].push_back(person);
- }
- else
- {
- throw "Invalid person name detected (no first letter)";
- }
- }
- //////
- public:
- static string listAllPersonsByFirstNameLetter(const char & letter)
- {
- ostringstream str;
- int start_letter_index = (int)(tolower(letter)) - 97;
- if (start_letter_index >= 0 && start_letter_index <= 25)
- {
- for (int i = 0; i < personsByName[start_letter_index].size(); i++)
- {
- str << ".............................."
- << endl << personsByName[start_letter_index][i]->getInfo();
- }
- }
- else
- {
- throw "Invalid symbol instead of a letter";
- }
- str << endl;
- return str.str();
- }
- static string listPersonsSummaryByNameStartingLetter()
- {
- ostringstream str;
- for (int i = 0; i < 26; i++)
- {
- str << (char)(i+65) << " : " << personsByName[i].size() << endl;
- }
- str << endl;
- return str.str();
- }
- }
- ////
- vector<Person*> CarsRegister::personsByName[26]{};
- ////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement