C++1.建立一个list,保存员工薪资水平,将薪资大于10000 的员工薪水存放在另一个list 中。 2.建立一个list,保存员工年终绩效,将薪资小于60 的从list中删除,涉及到运算符重载
时间: 2024-02-11 18:07:37 浏览: 27
好的,针对你的问题,我来一一解答。
1. 建立一个list,保存员工薪资水平,将薪资大于10000的员工薪水存放在另一个list中。
下面是 C++ 代码实现:
```c++
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> salaries; // 建立员工薪资列表
list<int> high_salaries; // 建立高薪员工列表
// 添加员工薪资
salaries.push_back(8000);
salaries.push_back(12000);
salaries.push_back(15000);
salaries.push_back(6000);
// 遍历员工薪资列表,将高于10000的薪资添加到高薪员工列表中
for (list<int>::iterator it = salaries.begin(); it != salaries.end(); ++it) {
if (*it > 10000) {
high_salaries.push_back(*it);
}
}
// 输出高薪员工列表
for (list<int>::iterator it = high_salaries.begin(); it != high_salaries.end(); ++it) {
cout << *it << endl;
}
return 0;
}
```
2. 建立一个list,保存员工年终绩效,将薪资小于60的从list中删除,涉及到运算符重载。
下面是 C++ 代码实现:
```c++
#include <iostream>
#include <list>
using namespace std;
class Performance
{
public:
Performance(int score) : score_(score) {}
bool operator < (const Performance &p) const {
return score_ < p.score_;
}
int getScore() const {
return score_;
}
private:
int score_;
};
int main()
{
list<Performance> performances; // 建立员工绩效列表
// 添加员工绩效
performances.push_back(Performance(80));
performances.push_back(Performance(55));
performances.push_back(Performance(90));
performances.push_back(Performance(70));
// 遍历员工绩效列表,将小于60的绩效从列表中删除
for (list<Performance>::iterator it = performances.begin(); it != performances.end(); ) {
if (it->getScore() < 60) {
it = performances.erase(it);
} else {
++it;
}
}
// 输出员工绩效列表
for (list<Performance>::iterator it = performances.begin(); it != performances.end(); ++it) {
cout << it->getScore() << endl;
}
return 0;
}
```
以上就是对你问题的解答,希望能帮到你。