C/C++教程

C++结构体Struct的cmp函数

本文主要是介绍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按字典序从小到大排序

这篇关于C++结构体Struct的cmp函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!