簡體   English   中英

我如何將一個數據類型不同的向量推回去

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM