结构体的定义

我们使用struct来定义结构体,格式如下

1
2
3
struct 结构体名字{
类型名 变量名
};

例如我们定义一个坐标结构体:

1
2
3
struct zuobiao{
int x,y;
};

结构体的使用

我们可以直接像int那样定义结构体变量和数组。

1
zuobiao tr;

我们用.操作符来访问结构体的元素。

1
2
zuobiao tr;
tr.x=100,tr.y=-100;

结构体的初始化可以用{}来初始化,对顺序有严格要求(按照你定义的顺序)

1
zuobiao tr={100,-100};//x=100,y=-100

结构体的其他妙用

我们用结构体排序时,可以写cmp函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
using namespace std;
struct ren{
int qian;
string ming;
};

bool cmp(ren x,ren y){//前一个元素大于后一个元素
return x.qian>y.qian;
}
ren a[10005];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].ming>>a[i].qian;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].ming<<"="<<a[i].qian<<"$\n";
}
return 0;
}

输入

1
2
3
4
3
XiaoMing 10
XiaoHong 20
XiaoWang 5

输出

1
2
3
XiaoHong=20$
XiaoMing=10$
XiaoWang=5$

结束语

学会了多练习才能巩固哦!
注意:结构体定义后面一定不要忘记加;