前言
之前讲过变量,讲了数据类型(如 int 等),而结构体就相当于创造一个类型。
定义结构体
首先,写上一个神圣不可侵犯的(bushi) struct
。
好了,不开玩笑了。
在程序外围定义(一般写在命名空间后面)。
struct 名字
{
含有的东西。
}; 一定一定要有分号!!!
例:定义存储坐标的结构体
struct zuobiao
{
int x, y;
};
结构体定义好了,我们就可以拿结构体创建数据结构了。
以上面的坐标为例,定义一个类型为
z
u
o
b
i
a
o
zuobiao
zuobiao 的变量
a
a
a,只需要写:zuobiao a;
就完事了,神不神奇。
数组同样:zuobiao mp[n][m]
。
使用结构体
以上面的 z u o b i a o , a , m p zuobiao,a,mp zuobiao,a,mp 为例:
a
a
a 的
x
x
x(坐标中定义的):a.x
;
a
a
a 的
y
y
y(坐标中定义的):a.y
。
数组:正常数组+“.定义名”,mp[i][j].x
或其他。
结构体排序
结构体排序需要写专门的函数,一般叫 c m p cmp cmp。
以 m p mp mp 数组为例,以 x x x 从大到小排序就这么写:
bool cmp(zuobiao a, zuobiao b)
{
return a.x > b.x;
}
省略......
sort(mp + 1, mp + n + 1, cmp);
这样就好了,也可以根据实际需求结合分支结构等进行自定义。
关于 sort 的用法详见 这篇文章,侵权联系紫衫(主要懒得写)。
作者的话
就这样吧,推荐几道例题。
拜拜~