§ 7. Контейнеры, итераторы, представления, алгоритмы
Задания
01Создайте базу данных пользователей операционной системы в виде std::vector<Account> и наполните ее тестовыми данными. Класс Account выглядит так:
struct Account { unsigned int id; // идентификатор std::string login; // логин std::string name; // имя std::string shell; // оболочка std::string home_directory; // домашняя директория };
Затем выполните следующие задания в виде тестов для этой базы данных. (Для каждого теста удобно формировать свою базу данных.)
- Выберите из базы данных всех пользователей, которые используют оболочку
/bin/bash. Для этого воспользуйтесь алгоритмомstd::ranges::find_if. - Создайте сортированный вариант базы данных, используя
std::map. Затем выберите из этой базы данных всех пользователей, идентификатор которых больше или равен 0 и меньше 1000, используянаиболее подходящие для этого методы классаstd::map. - Определите, сколько пользователей использует каждую из оболочек, которые есть в базе данных. Для этого воспользуйтесь
std::unordered_map. - Выберите всех пользователей из базы данных, у которых дублируются идентификаторы. Для этого воспользуйтесь классом
std::unordered_set.