枚举
将该某种类型或者选项的所有的取值列举出来,前提是可以穷举的,将其全部都列举出来,供选择使用;
枚举基本性质
- 枚举总元素称为枚举常量,只有在定义时可以赋值,有且只有一次,就因为是常量;
- 如果枚举元素都没有赋值,默认从0开始,如果有赋值,将以赋值为准,依次向后递增,但不影响之前的枚举元素。
枚举使用
- 枚举元素默认值从0开始:
enum DAY{
MON , TUE, WED, THU, FRI, SAT, SUN
};
int main() {
enum DAY day1 = DAY::MON;
cout << DAY::MON << " " << DAY::TUE << " " << DAY::WED << " " << DAY::THU << " " << DAY::FRI << " "
<< DAY::SAT << " " << DAY::SUN << endl;
return 0;
}
0 1 2 3 4 5 6
- 如果枚举元素被赋值,将以赋值以后的值为起增点,之后的值依次+1:
enum DAY{
MON = 10 , TUE, WED, THU, FRI, SAT, SUN
};
int main() {
enum DAY day1 = DAY::MON;
cout << DAY::MON << " " << DAY::TUE << " " << DAY::WED << " " << DAY::THU << " " << DAY::FRI << " "
<< DAY::SAT << " " << DAY::SUN << endl;
return 0;
}
10 11 12 13 14 15 16
enum DAY{
MON = 10 , TUE, WED, THU = 99, FRI, SAT, SUN
};
int main() {
enum DAY day1 = DAY::MON;
cout << DAY::MON << " " << DAY::TUE << " " << DAY::WED << " " << DAY::THU << " " << DAY::FRI << " "
<< DAY::SAT << " " << DAY::SUN << endl;
return 0;
}
10 11 12 99 100 101 102
enum DAY{
MON , TUE, WED, THU = 99, FRI, SAT, SUN
};
int main() {
enum DAY day1 = DAY::MON;
cout << DAY::MON << " " << DAY::TUE << " " << DAY::WED << " " << DAY::THU << " " << DAY::FRI << " "
<< DAY::SAT << " " << DAY::SUN << endl;
return 0;
}
0 1 2 99 100 101 102
- 枚举元素是常量:
enum DAY{
MON , TUE, WED, THU = 99, FRI, SAT, SUN
};
int main() {
int arr[DAY::THU] = { 0 };
cout << sizeof(arr) / sizeof(arr[0]) << endl;
return 0;
}
99
enum DAY{
MON , TUE, WED, THU = 99, FRI, SAT, SUN
};
int main() {
DAY::FRI = 100; //error
return 0;
}
error:表达式必须是可以修改的左值