对十个人随机分配工资和部门并进行打印
通过map容器完成
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<ctime>
using namespace std;
class Person
{
public:
Person(string name, int money)
{
this->m_name = name;
this->m_money = money;
}
public:
string m_name;
int m_money;
};
void createStaff(vector<Person>& v)//创建员工
{
string s = "ABCDEFGHIJ";
int n = 0;
for (int i=0;i<10;++i)
{
string x = "员工";
x += s[n++];
Person p(x, rand() % 6001 + 10000);//工资10000~1600
v.push_back(p);
}
}
void Print(const multimap<int, Person>& m)//输出
{
for (multimap<int, Person>::const_iterator it = m.begin(); it != m.end(); ++it)
{
switch (it->first)
{
case 1:
cout << "策划部" << " ";
break;
case 2:
cout << "研发部" << " ";
break;
case 3:
cout << "美工部" << " ";
break;
}
cout << "姓名:" << it->second.m_name << " ";
cout << "工资:" << it->second.m_money << endl;
}
}
int main()
{
srand((unsigned)time(NULL));
vector<Person> v;
createStaff(v);
multimap<int, Person> m;
for (vector<Person>::iterator it = v.begin(); it != v.end(); ++it)
{
m.insert(pair<int, Person>(rand()%3+1,*it));
}
Print(m);
}