C++結構體Struct的cmp函數


C++的結構體Struct可以容納許多不同的數據值

 

舉例:

struct PayRoll
{
    int empNumber;
    string name;
    double hours,payRate,grossPay;
};

 

它本質上是創建一個名為 PayRoll 的新數據類型,但我們還並沒有使用它

而以下定義語句創建了 PayRoll 結構體的 3 個變量:

PayRoll deptHead, foreman, associate;

 

它們每一個都是 PayRoll 結構體的實例,可以被分配和擁有自己的內存,以保存其成員數據。請注意,盡管 3 個結構體變量具有不同的名稱,但每個變量都包含具有相同名稱的成員,如圖所示

 

我們也可以用聲明的結構體中的數據結構去定義一個數組,如:

struct PayRoll
{
    int empNumber;
    string name;
    double hours,payRate,grossPay;
}a[1000];

 

這樣就聲明了一個a數組,數組中的每個值都具有結構體中的數據類型結構,即我們可以訪問 a[1].name 或 a[500].hours 等,但前提是你已經為他們賦過值。

但是簡單定義的結構體不能排序,如果需要將結構體按照某種性質排序,則需要sort函數和手動定義的cmp比較函數,如:

struct PayRoll
{
    int empNumber;
    string name;
    double hours,payRate,grossPay;
}a[1000];

bool cmp(RayRoll a, RayRoll b)
{
    return a.name < b.name;   
}

sort(a, a + 1000, cmp);

 

這樣我們就定義了a數組的排序,即按照每個值的name按字典序從小到大排序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM