枚举

enum是枚举类型,但说它是一种类型,它和内置类型及类类型都有些许不同。它的用法真的很奇怪,我们一起来看一看:

enum week{monday,tuesday,wednesday,thursday,friday,saturday,sunday};
week date=monday;
1
2
乍一看,enum和类的用法差不多啊,这样想你就错了,它会让你大开眼界:

enum {monday…sunday};
int date=monday;
1
2
就问你强不强,你类类型能这么用?类对象不带名字,然后里面的成员作用域符号都不用带就能直接用,这个时候,又感觉enum和内置类型差不多了。week这个“中间商”根本就是可有可无,你开心的话,还可以这么用:

enum {monady…sunday} week;
1
或者是这么用

enum{monday…sunday}yesterday=monday,today=tuesday,tommorrow=wednesday;
1
总的来说,我们用enum时用的都是enum里的成员,它有没有“实例化”对象可以跟我们没有半毛钱关系,下面是我从别人那里“拿”来的总结:
(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。

(2) week是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。

(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。

(5) 枚举型是预处理指令#define的替代。

(6) 类型定义以分号;结束。

对了,忘了介绍一下C++11的新标准,enum也可以像class一样带有作用域:

enum class {monday…sunday};//错误
enum class week{monday…sunday};//正确
int today=monday;//错误
int today=week::monday;//正确
1
2
3
4
我们可以发现,加上class修饰符后,enum这个“坏孩子”就开始从良了,不能再任性地不带对象名,也不能顽皮地不用::修饰符了,它更像是一个类。但是坏孩子的天性是抹杀不掉的,它还是保留了enum的特点,即(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

也不知道是自己还是啥,现在还停留在贪心算法,学长最近的题也快看不懂了

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值