最近做到洛谷的 P11215(一个大模拟,有些类似于 2022 CSP-J2 T3),发现大部分做法都类似于:
记 0 为空,记 1 为水,记 2 为树
这样写不仅麻烦容易记错,在多人协作的时候还需要单独使用注释重点标记各个数值代表什么意思。其实表达固定的几种类型这样的数据可以让编译器替我们完成记录工作,我们只需要定义对应的常量表即可。
本文章并非引战,两种方法各有优点和适用范围。
本文适用于追求代码可读性 / 工程代码协作的程序。
如果你在考场上需要压行 / 节省代码时间的话此教程对你无用。
本文适用于追求代码可读性 / 工程代码协作的程序。
如果你在考场上需要压行 / 节省代码时间的话此教程对你无用。
enum 语法
enum <类型名> {<枚举常量表>};
C++例子:
enum EventType { GROW, DIE };
enum PosType {
// 也可以手动指定各个标识符对应的具体常量
EMPTY = 0,
WATER = 1,
TREE = 2
};
C++定义一个 enum 类后即可将这种类作为普通的变量类型:
EventType event = GROW;
PosType type = WATER;
C++enum
其实是一种 C 语言时代就有的语法格式了,其内部的值会在编译时就预处理到对应代码中(类似于多个 #define
,但是将值的管理交给编译器,所以无需担心多种类型的常量互相干扰),所以也无需担心会影响时间复杂度。