(1).先看概念
枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
(2).基本语法表示
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
} 枚举变量;定义一个:
enum fruit {
apple,
banana,
pear,
fig
} product;(3).上面的fruit和apple, banana,pear,fig以及product如何理解?
(3.1)首先fruit是一个数据类型,apple, banana,pear,fig是fruit数据类型的元素。
(3.2)product是一个变量,它是一个fruit类型的变量,如果你觉得比较难理解,你可以把上面的代码理解为下面的代码:
//先定义类型
enum fruit {
apple,
banana,
pear,
fig
};
//再使用类型
fruit product;我们应该描述product这个变量是fruit类型,不能去说product属于枚举类型
(4).enum的每个元素是有默认值的,例如上面的apple, banana,pear,fig元素的默认值分别为0,1,2,3
(5).enmu的每个元素虽然有默认值,但是支持自定义,例如
enum fruit {
apple = 4,
banana = 3,
pear = 2,
fig = 1
};(6).enum的元素部分设置值,部分不设置值,编译时默认从0开始设置默认值,如果前面的元素已经设置值,后面的元素没有设置值会+1处理
enum fruit {
apple,
banana = 3,
pear,
fig1
};例如上面的元素的常量值分别为:0,3,4,5
(7).枚举类型的元素只能以标识符形式表示,所以下面的写法都是瞎几把写,乱写,错误的写法
enum fruit {'a', 'b','c','d'};
enum fruit {100, 200,300,400};(8).应用场景是可以代替const,普通变量使用枚举的元素的常量值的用法,输出了0和1。可以enum可以帮助我们创建常量
//定义枚举
enum fruit {apple,banana,pear,fig};
//普通变量使用枚举元素的常量值
int a = apple; //0
int b = banana; //1
//输出
std::cout << a << b << std::endl;(9).enum代替const有什么好处呢?先看enum和const定义一个性别的代码:
//定义enum gender 表示性别:1男 2女
enum gender { male = 1, female = 2 };
//常量定义表示男女
const int _male = 1;
const int _female = 2;可以看到const定义的常量男和女你只能从字面去理解它们是关联的,但是enum看代码就知道都是属于gender性别的组,意味着给常量设置了组,方便管理。并且在开发中我们团队可以约束性别存储均统一使用已经定义好的enum类型
(10).enum会自动转换成int,例如
//enum
enum gender { male = 1, female = 2 };
gender a = male;
gender b = female;
int c, d;
c = a; // change to 1
d = b; // change to 2(11).从int转换到enum
enum gender { male = 1, female = 2 };
int a = 1;
a = gender(2); 1.全局用户信息设置 git config --global user.name gaojiufeng git config --global user.email 392223903...
git pull https://git.oschina.net/392223903/learn.git master 换为您的git地址...
方案1.IE浏览器"无法显示此页"的解决办法(1).按下Win+R键打开运行,输入netsh winsock reset,回车;(2).重启即可. 方案2.IE浏览器"无法显示此页"的解决办法 (1).设置-连接-局域网设置-自动检测设置开...
vsftp常用操作命令:1.启动vsftp: service vsftpd start 2.重启vsftp: service vsftpd restart3.修改用户密码:passwd lao8org4.创建用户:useradd -d /data/wwwroot/blog -s /sbin...
1.设置桥接模式,复制物理网络状态2.编辑/etc/sysconfig/network-scripts/ifcfg-eth0以下配置:(如果没有自己创建对应选项)ONBOOT=yes NM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.2.240...
集合的性质: 唯一性,无序性,确定性注: (1).在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素但,因为集合的无序性,无法通过下标或范围来访问部分元素.(2).集合中不会出现重复的值因此想看元素,要么随机选一个,要么全选1.sadd ke...