[英]how can i push back an in into a vector with different data type
我有兩個類,一個叫做“ OrganisationRecord
”,另一個叫做“ PayrollProcessing
”。 “ OrganisationRecord
”包含雇員的職業和部門名稱。
class OrganisationRecord
{
private:
public:
string name;
string occupation;
string department;
};
class PayrollProcessing
{
private:
ifstream inputfile;
ofstream outputfile;
vector<OrganisationRecord> OrganisationRecords;
public:
void loadOrganisationRecords(string filename);
void displayEmployeeOfSalaryGTE(double salary);
//GTE = greater than or equal to
};
“ PayrollProcessing
”中有兩個成員函數; “ loadOrganisationRecords
”和“ displayEmployeeOfSalaryGTE
”的量,代碼是:
void PayrollProcessing::loadOrganisationRecords(string filename)
{
inputfile.open(ORGANISATIONALRECORDSFILE);
if (!inputfile)
{
cout << "the organisation records file does not exist!" << endl;
return;
}
OrganisationRecord _organisationrecord;
int employeenumber;
while (inputfile >> employeenumber)
{
inputfile.ignore();
getline(inputfile, _organisationrecord.name);
getline(inputfile, _organisationrecord.occupation);
getline(inputfile, _organisationrecord.department);
OrganisationRecords.push_back(_organisationrecord);
}
inputfile.close();
}
void PayrollProcessing::displayEmployeeOfSalaryGTE(double salary)
{
unsigned int count;
salary = SALARY;
if (salary < 0)
{
cout << "no record match this criteria!" << endl;
return;
}
for (count = 0; count < PayrollRecords.size(); count++)
{
if (PayrollRecords[count].salary >= salary)
{
cout << "=============================================" << endl;
cout << "Employeenumber: " << endl << endl;
cout << "Name: " << OrganisationRecords[count].name << endl;
cout << "Adress: " << HRRecords[count].address << endl;
cout << "Department: " << OrganisationRecords[count].department << endl;
cout << "Salary: " << PayrollRecords[count].salary << endl;
cout << "=============================================" << endl;
cout << OrganisationRecords.size();
}
}
return;
}
我如何隱式地使員工編號可在“ displayEmployeeOfSalaryGTE
”中顯示。
根據您的閱讀代碼, 每個組織記錄都有一個員工編號。 因此,只需在OrganisationRecord
類中為該值添加一個字段,然后您就可以在displayEmployeeOfSalaryGTE()
訪問它,例如:
class OrganisationRecord
{
public:
int employeeNumber; // <-- add this
...
};
...
void PayrollProcessing::loadOrganisationRecords(string filename)
{
...
int employeeNumber;
OrganisationRecord _organisationrecord;
while (inputfile >> employeeNumber)
{
inputfile.ignore();
_organisationrecord.employeeNumber = employeeNumber // <-- add this
...
}
...
}
...
cout << "EmployeeNumber: " << OrganisationRecords[count].employeeNumber << endl;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.