枚举类型的定义和应用总结
应用 类型 总结 定义 枚举
2023-06-13 09:15:06 时间
enumweekday{sun,mon,tue,wed,thu,fri,sat};
上面声明了一个枚举类型weekday,花括号中的sun,mon,。。。。sat等称为枚举元素或枚举常量。
这些枚举常量,不会因为我们写了sun就自动代表着“星期天”,它只是一个符号,究竟用来代表什么含义,完全却决于程序员自己对它们的处理。
表示这个类型的变量的值只能是以上7个值之一,他们是用户自己定义的标识符。
在声明了枚举类型之后,就可以用它开定义变量。如
weekdayworkday,week_end;
这样,workday和week_end被定义为枚举类型weekday的变量。
说明:
#include<iostream>
usingnamespacestd;
intmain(){
enumweekday{sun,mon,tue,wed,thu,fri,sat};
weekdayone;
one=sun;
cout<<one;
cout<<endl;
}
我们也卡一在声明枚举类型时,另行指定枚举元素的值,如
#include<iostream>
usingnamespacestd;
intmain(){
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
weekdayone,two;
one=sun;
two=wed;
cout<<one<<endl;
cout<<two<<endl;
cout<<endl;
}
指定sun为7,mon为1,以后按顺序加1,sat为6。
枚举值的比较规则是按其在声明枚举类型时的顺序号比较。如果定义时未人为指定,则第一个枚举元素的值认作0.
#include<iostream>
usingnamespacestd;
intmain(){
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
weekdayone,two;
one=sun;
two=wed;
cout<<(sun>wed?sun:wed);
cout<<endl;
}
#include<iostream>
usingnamespacestd;
intmain(){
enumweekday{sun,mon,tue,wed,thu,fri,sat};
weekdayone;
one=weekday(7);
cout<<one;
cout<<endl;
}
以上的语句是将序号为2的枚举元素赋给one。相当于
one=sun;
分析:球的颜色只有5种,每一个球的颜色只能是这5种之一,因此可以用枚举类型变量来处理。
/*******
设某一次取出的颜色为i,j,k。显然,i,j,k都是以上5中颜色之一,根据题意,
要求i,j,k三者互不相同。可以用穷举法,对每一种可能分别进行测试,看那一组符合条件
*****/
#include<iostream>
usingnamespacestd;
intmain(){
enumcolor{red,yellow,blue,white,black};
colorpri;
inti,j,k,n=0,loop;
for(i=red;i<=black;i++){
for(j=red;j<=black;j++)
if(i!=j){
for(k=red;k<=black;k++){
if(k!=i&&k!=j){
n++;//使n累加,统计可能的抽取情况
cout<<n<<"\t";
for(loop=0;loop<3;loop++){//通过循环,输出该次i,j,k所对应的颜色
switch(loop){
case0:pri=color(i);break;
case1:pri=color(j);break;
case2:pri=color(k);break;
}
switch(pri){
casered: cout<<"red\t";break;
caseyellow:cout<<"yellow\t";break;
caseblue: cout<<"blue\t";break;
casewhite:cout<<"white\t";break;
caseblack:cout<<"black\t";break;
}
}
cout<<endl;
}
}
}
}
cout<<"total:"<<n<<endl;
}
相关文章
- 重磅!信号分析新方法fCWT处理速度提高100倍,可应用于脑机接口,Nature子刊
- 研报复制(八):系统风险集中度在行业轮动策略中的应用
- iOS__上传应用到AppStore出现Authenticating with the iTunes store
- 和使用Oracle数据库类型及应用(oracle的类型)
- Win11中未打包的Win32商城应用也会登陆Win10
- 深度迁移学习首次应用于宇宙星系研究 对星系分类准确性达99.8%
- Linux Cat命令的功能及应用(linuxcatv)
- MongoDB时间类型:深度剖析与应用(mongodb时间类型)
- 及特点Oracle触发器类型:特点及应用(oracle触发器类型)
- Oracle数据库中不同触发器类型及应用(oracle触发器类型)
- Oracle数据库触发器的类型及其应用(oracle触发器类型)
- Oracle触发器:种类与应用(oracle触发器类型)
- Oracle数据库中触发器类型及其应用(oracle触发器类型)
- 研究Oracle数据库触发器类型及其应用(oracle触发器类型)
- 掌握Oracle触发器类型及其应用(oracle触发器类型)
- 熟悉Oracle触发器类型,扩展应用范围(oracle触发器类型)
- Oracle触发器的类型及其应用(oracle触发器类型)
- Oracle 触发器的种类及应用(oracle触发器类型)
- Oracle数据库的触发器类型及应用(oracle触发器类型)
- 精通Oracle触发器:熟悉不同类型的应用(oracle触发器类型)
- Oracle数据库中的触发器类型及其应用(oracle触发器类型)
- 深入探讨Linux虚拟化:了解virtio技术的应用与实现(linuxvirtio)
- 使用Linux CF命令提高服务器性能控制和应用部署管理。(linuxcf命令)
- 提升性能利用Redis开启缓存之旅(应用redis缓存)
- MySQL三大类型解析关系型非关系型和列式数据库的区别与应用(mysql三大分类)
- 零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门