在开发代码的过程中,vector类型数组a的index取了一个枚举值CTR,eg:a[CTR],刚开始以为是map类型,后面看不是,简单的看了下c++的enum类型,原来enum按顺序默认为数字。
2.1、枚举类型的定义
枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
2.2、枚举类型的格式
enum <类型名> {<枚举常量表>};
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; // 定义枚举类型week
枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,默认状态下,这个整数就是所列举元素的序号,序号从0开始。
可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。 各枚举常量的值可以重复。
枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量。
eg:
//默认情况
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
//枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为0、1、2、3、4、5、6。
//enum指定后,后续按照前面的依次递增
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。
//enum命名按照常量命名,不能是字符串和数字
enum week {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
enum week {0,1,2,3,4,5,6,7};
#include
#include
#include
#include
#include
using namespace std;
int main()
{
enum week
{
Sun = 0,
Mon,
Tue,
Wed,
Thu,
Fri,
Sat
};
vector week_num;
week_num.clear();
week_num.resize(7, 0);
week_num[Sun]=10;
week_num[Sat]=9;
for (int i = 0; i < week_num.size(); i++)
{
cout << week_num[i] << ",";
}
cout << endl;
return (0);
}
输出
10,0,0,0,0,0,9,
C++ 枚举类型详解 | 菜鸟教程