【语法解析】
● C++ 枚举类型
在C++中,枚举(enumeration)类型是一种简单的数据类型,用于定义在程序中使用的常量。
(1)枚举类型的定义格式:enum <类型名> {<枚举常量表>};
(2)枚举常量表列出枚举类型的所有取值。各枚举常量之间以逗号" , "间隔,且必须各不相同。
(3)各枚举常量的值可以重复。默认状态下,各枚举常量的值就是所列举元素的序号,序号从 0 开始。例如:
#include <iostream>
using namespace std;int main() {enum color {red,yellow,blue,white,black};for(int i=red; i<=black; i++) {cout<<i<<" ";}
}/*
out:
0 1 2 3 4
*/
(4)另外,可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加 1 的原则取值。例如:
enum week {Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat};
//枚举常量 Sun,Mon,Tue,Wed,Thu,Fri,Sat 的值分别为 7、1、2、3、4、5、6。
一个完整的示例代码如下所示:
#include <iostream>
using namespace std;int main() {enum week {Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat};enum week id=Fri; //枚举类型变量cout<<id<<endl; //5cout<<Sun<<endl; //7
}/*
out:
5
7
*/
(5)枚举常量只能以标识符形式(由字母、数字、下划线构成,但不能以数字开头)表示,而不能是整型常量、字符常量。例如,以下定义非法:
enum letter {'e','d','c','b','a'}; //枚举常量不能是字符常量
enum year {2025,2024,2023,2022,2021,2020}; //枚举常量不能是整型常量
而以下定义合法:
enum letter {e,d,c,b,a};
enum year {Y2025,Y2024,Y2023,Y2022,Y2021,Y2020};
(6)C++标准并没有为枚举类型提供直接的迭代器支持,因此不能像其他容器类型那样使用迭代器进行遍历。