C++结构体Struct的cmp函数

C++的结构体Struct可以容纳许多不同的数据值

 

举例:

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

 

它本质上是创建一个名为 PayRoll 的新数据类型,但我们还并没有使用它

而以下定义语句创建了 PayRoll 结构体的 3 个变量:

PayRoll deptHead, foreman, associate;

 

它们每一个都是 PayRoll 结构体的实例,可以被分配和拥有自己的内存,以保存其成员数据。请注意,尽管 3 个结构体变量具有不同的名称,但每个变量都包含具有相同名称的成员,如图所示

C++结构体Struct的cmp函数

 

我们也可以用声明的结构体中的数据结构去定义一个数组,如:

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按字典序从小到大排序

上一篇:Flink部署Standalone模式


下一篇:Jenkins+SonarQube 代码审查