第一步是先建立员工的个人信息类:
class Person
{
friend void printfm(multimap<int, Person>& m);
friend void joinv(vector<Person>& c, multimap<int, Person>& v);
friend void show(multimap<int, Person>& v);
private:
string name;
int age;
int num;
int salary;
public:
Person(){}
Person(string name, int age, int num, int salary)
{
this->name = name;
this->age = age;
this->num = num;
this->salary = salary;
}
};
2、第二步是建立函数体,看你需要啥样的函数
void text14()
{
//创建5一个容器vector将5个员工信息放入
vector<Person>c;
pushvextor(c);
//五名员工加入部门
multimap<int, Person>v;
joinv(c, v);
//输出信息
show(v);
}
3、将子函数逐一写出
建立一个vector容器将5个员工的信息放入
vector<Person>c;
void pushvextor(vector<Person>&c)
{
string Name = "ABCDE";
int i = 0;
srand(time(NULL));
for (i=0; i < 5; i++)
{
string name = "员工";
name += Name[i];
int age = 18 + rand() % 10;
int num = i;
int salary = 5000 + rand() % 3000;
c.push_back(Person(name, age, num, salary));
}
}
将vector里面的数据放入multimap中,并且将员工加入的部门也放入multimap.second中;
vector<Person>c;
multimap<int, Person>v;
void joinv(vector<Person>&c, multimap<int, Person>&v)
{
vector<Person>::iterator it = c.begin();
for(;it!=c.end();it++)
{
cout << "请输入" << (*it).name << "加入的部门" << endl;
int op = 0;
cin >> op;
v.insert(make_pair(op, *it));
}
}
void show(multimap<int, Person>& v)
{
int op = 0;
cout << "请输入部门编号0--4" << endl;
cin >> op;
switch (op)
{
case 0:
{
cout << "--------组织部-------" << endl;
multimap<int, Person>::iterator it;
it = v.find(op);
for (; it != v.end(); it++)
cout << (*it).second.name << " " << (*it).second.age << " " <<
(*it).second.num << " " << (*it).second.salary << endl;
break;
}
case 1:
{
cout << "--------行政部-------" << endl;
multimap<int, Person>::iterator it;
it = v.find(op);
for (; it != v.end(); it++)
cout << (*it).second.name << " " << (*it).second.age << " " <<
(*it).second.num << " " << (*it).second.salary << endl;
break;
}
case 3:
{
break;
}
}
}