如何将其推回具有不同数据类型的向量

how can i push back an in into a vector with different data type

本文关键字:数据类型 向量      更新时间:2023-10-16

我有两个类,一个称为" 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"answers" 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;