Comments 7
Уже во многое компиляторы завезли views / ranges. Там порой более лаконичный синтаксис.
Вспомнилось как я искал аналог transform_if, но потом оказалось что это accumulate.
Статью что, GPT писал? У queue, stack, priority_queue это не контейнеры, а адаптеры, которые могут оборачивать почти произвольные контейнеры.
(Посыпаю голову пеплом - там написано, что это адаптеры)
Да и в целом ощущение, как от студенческого реферата - незнакомым с темой непонятно, знакомым - бесполезно
STL — это коллекция компонентов, предназначенных для работы с данными.
Дальше уже можно не читать, так как становится ясно, что за автора статью писал AI.
Вы бы хоть примеры корректные писали...
Пример про сортировку сотрудников абсолютно неверный. После первой сортировки вы получите список сотрудников отсортированный по отделам:
Alice from Accounting, Salary: 50000
Diana from Accounting, Salary: 55000
Bob from HR, Salary: 45000
Eve from HR, Salary: 48000
Charlie from IT, Salary: 70000
Frank from IT, Salary: 52000
Вторая сортировка просто отсортирует весь список по зарплатам. А вовсе не по "затем сортируем внутри каждой группы по убыванию зарплаты...". В вашем коде группы по отделам никак не учитываются, вывод будет вот такой:
Charlie from IT, Salary: 70000
Diana from Accounting, Salary: 55000
Frank from IT, Salary: 52000
Alice from Accounting, Salary: 50000
Eve from HR, Salary: 48000
Bob from HR, Salary: 45000
Чтобы сделать то, что вы хотели нужно написать одну сортировку с более сложным условием:
std::stable_sort(employees.begin(), employees.end(),
[](const Employee& a, const Employee& b)
{ if (a.department == b.department)
return a.salary > b.salary;
else
return a.department < b.department; });
Ну и в целом статья вообще ни о чем: сначала пишете про std::sort, в примере std::stable_sort. Хоть бы пояснили в чем разница.
Если на ваших курсах по C++ примерно такой же формат, то толку от них, наверное, не много.
Применение контейнеров и алгоритмов STL в C++