创建Employee的结构体,包含变量name和department,编写函数func,输入vector<Employee>,返回vector<std::string>,按照部门员工人数从高到低的顺序列出所有部门名称
时间: 2024-10-28 15:13:14 浏览: 30
在C++中,你可以创建一个名为`Employee`的结构体,如下所示:
```cpp
#include <string>
#include <vector>
#include <algorithm>
// 定义 Employee 结构体
struct Employee {
std::string name;
std::string department;
};
// 定义函数 func,接受一个 Employee 的向量并返回部门名的排序列表
std::vector<std::string> func(const std::vector<Employee>& employees) {
std::vector<std::pair<std::string, int>> departmentCounts(employees.size(), { "", 0 }); // 存储部门名和计数
// 遍历员工,统计每个部门的人数
for (const auto& employee : employees) {
departmentCounts[employee.department][1]++;
}
// 对部门名和计数进行排序
std::sort(departmentCounts.begin(), departmentCounts.end(),
[](const auto& a, const auto& b) -> bool {
return a.second > b.second; // 按照计数降序排序
});
// 提取部门名并创建新的字符串向量
std::vector<std::string> result;
for (const auto& countPair : departmentCounts) {
result.push_back(countPair.first);
}
return result;
}
```
这个 `func` 函数首先统计各部门的员工数量,然后通过比较部门计数对部门进行排序,并最后将结果转换回部门名称的列表。
阅读全文