c++报错:
#include<iostream>
#include<string>
#include<vector>
#include<ctime>
#include<map>
using namespace std;
#define CESHI 1
#define YANFA 2
#define MEISHU 3
class Worker
{
public:
string m_Name;
int m_Salary;
};
void setWorkers(vector<Worker> & vWorkers)
{
string nameSeed = "ABCDEFGHIJ";
for (int i = 0; i < 10; i++)
{
Worker worker;
//worker.m_Name = "员工"+nameSeed[i];
worker.m_Name = "员工";
worker.m_Name += nameSeed[i];
worker.m_Salary = rand() % 1001 + 2000;//2001-3000
vWorkers.push_back(worker);
}
}
void setGroup(vector<Worker> & vWorkers, multimap<int, Worker> & mWorkers)
{
vector<Worker>::iterator vit = vWorkers.begin();
for (; vit != vWorkers.end(); vit++)
{
int DepartID = rand() % 3 + 1;//1,2,3
mWorkers.insert( make_pair(DepartID,*vit));
}
}
void showGroup(multimap<int, Worker> & mWorkers)
{
//输出第一组员工,例如<1,A> <1,B> <1,F>
multimap<int, Worker>::iterator pos = mWorkers.find(CESHI); //返回key的迭代器
int count = mWorkers.count(1);
int index = 0;
cout << "----------------第一组人员------------------------" << endl;
for (; pos != mWorkers.end() && index < count ; pos++, index ++)
{
cout << pos->second.m_Name << " ";
}
cout << endl<<"-----------------------------------------------"<<endl;
multimap<int, Worker>::iterator pos = mWorkers.find(YANFA); //返回key的迭代器
count = mWorkers.count(YANFA);
index = 0;
cout << "----------------第二组人员------------------------" << endl;
for (; pos != mWorkers.end() && index < count; pos++, index++)
{
cout << pos->second.m_Name << " ";
}
cout << endl << "-----------------------------------------------" << endl;
pos = mWorkers.find(MEISHU); //返回key的迭代器
count = mWorkers.count(MEISHU);
index = 0;
cout << "----------------第三组人员------------------------" << endl;
for (; pos != mWorkers.end() && index < count; pos++, index++)
{
cout << pos->second.m_Name << " ";
}
cout << endl << "-----------------------------------------------" << endl;
}
void main()
{
srand((unsigned int)time(NULL));
//1.将10个员工存放在vector中
vector<Worker> vWorkers;
setWorkers(vWorkers);
//测试:
//vector<Worker>::iterator vit = vWorkers.begin();
//for (; vit != vWorkers.end(); vit++)
//{
// cout << " " << vit->m_Name << " 工资:" << vit->m_Salary << endl;
//}
//cout << endl;
//2.员工分组
multimap<int, Worker> mWorkerers;
setGroup(vWorkers, mWorkerers);
//测试
//multimap<int, Worker>::iterator mit = mWorkerers.begin();
//for (; mit != mWorkerers.end(); mit++)
//{
// cout << mit->first << " 姓名" << mit->second.m_Name << endl;
//}
//cout << endl;
//3.分组显示
showGroup(mWorkerers);
system("pause");
}
问题:
58行为什么不可以多次初始化?