c++之枚举

1、背景

在开发代码的过程中,vector类型数组a的index取了一个枚举值CTR,eg:a[CTR],刚开始以为是map类型,后面看不是,简单的看了下c++的enum类型,原来enum按顺序默认为数字。

2、enum简介

2.1、枚举类型的定义

枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

2.2、枚举类型的格式

enum <类型名> {<枚举常量表>};

enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; // 定义枚举类型week

2.3、枚举类型与数字的映射

枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,默认状态下,这个整数就是所列举元素的序号,序号从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};

3、enum实例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<iostream>
#include <vector>
using namespace std;int main()
{enum week{Sun = 0,Mon,Tue,Wed,Thu,Fri,Sat};vector<float> 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,

4、参考文献

C++ 枚举类型详解 | 菜鸟教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/62002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring与Mybatis整合aop整合pageHelper分页插件

前言 Spring与MyBatis整合的意义在于提供了一种结合优势的方式&#xff0c;以便更好地开发和管理持久层&#xff08;数据库访问&#xff09;代码。 这里也是总结了几点主要意义 简化配置&#xff1a;Spring与MyBatis整合后&#xff0c;可以通过Spring的配置文件来管理和配置M…

行业追踪,2023-08-31

自动复盘 2023-08-31 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

Elasticsearch:自动使用服务器时间设置日期字段并更新时区

在大多数情况下&#xff0c;你的数据包含一个以 create_date 命名的字段。 即使没有日期字段&#xff0c;处理各种格式和时区的日期对数据仓库来说也是一个重大挑战。 与此类似&#xff0c;如果要检测变化的数据&#xff0c;则必须准确设置日期字段。 在 Elasticsearch 中还有…

Doris集群安装部署(1.2.4.1 release)

此文阅读需要有Linux和服务器硬件基础&#xff01;某些内容写的不是特别细&#xff0c;如果常见的linux基础命令tar、uzip、mv、mkdir、系统包的安装等等&#xff0c;以文字带过了&#xff0c;这样可以减少文章篇幅。官方的安装部署方式一定要好好看一下&#xff0c;最好是尝试…

RabbitMQ 启动及参数说明

/usr/local/lib/erlang/erts-10.4/bin/beam.smp -W w -A 128 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true – -root /usr/local/lib/erlang -progname erl – -home /var/lib/rabbitmq – -pa /…

BL122:钡铼技术驱动,实现无缝Modbus到Profinet转换

钡铼技术BL122协议转换网关是一款专业的设备&#xff0c;用于将Modbus协议转换为Profinet协议。BL122采用了先进的嵌入式ARM MCU和基于Linux OS系统的开发&#xff0c;具备出色的性能和高度的稳定性。 BL122支持多种下行采集方式&#xff0c;包括Modbus RTU、Modbus TCP和Modbu…

图像处理 信号处理板 设计原理图:367-基于zynq XC7Z100 FMC接口通用计算平台

基于zynq XC7Z100 FMC接口通用计算平台 一、板卡概述 板卡由SoC XC7Z100-2FFG900I芯片来完成卡主控及数字信号处理&#xff0c;XC7Z100内部集成了两个ARM Cortex-A9核和一个kintex 7的FPGA&#xff0c;通过PL端FPGA扩展FMC、光纤、IO等接口&#xff0c;PS端ARM扩展网络、USB、R…

重磅OpenAI发布ChatGPT企业版本

8月29日凌晨&#xff0c;Open AI官网发布ChatGPT企业版本&#xff01; 企业版简介&#xff1a; ChatGPT企业版提供企业级安全和隐私、无限的高速 GPT-4 访问、用于处理更长输入的更长上下文窗口、高级数据分析功能、自定义选项等等。人工智能可以协助和提升我们工作生活的各个…

Java设计模式:四、行为型模式-04:中介者模式

文章目录 一、定义&#xff1a;中介者模式二、模拟场景&#xff1a;中介者模式三、违背方案&#xff1a;中介者模式3.1 工程结构3.2 创建数据库3.3 JDBC工具类3.4 单元测试 四、改善代码&#xff1a;中介者模式4.1 工程结构4.2 中介者工程结构图4.3 资源和配置类4.3.1 XML配置对…

MyBatis —— 动态SQL和缓存

前言 在上一篇文章中荔枝梳理了一些特殊的SQL查询和一对多、多对一的映射关系&#xff0c;而在这篇文章中荔枝将会梳理有关MyBatis动态SQL和MyBatis缓存的相关知识&#xff0c;同时也稍微了解了有关MyBatis中借助MAVEN中的插件管理来实现逆向工程。希望对需要的小伙伴有帮助哈哈…

BEVFusion复现 (Ubuntu RTX3090)

https://github.com/ADLab-AutoDrive/BEVFusion 1.环境安装 我的机器是RTX3090&#xff0c;CUDA11.1 1.创建虚拟环境 conda create -n bevfusion python3.8.3 2.安装PyTorch 和 torchvision pip install torch1.8.0cu111 torchvision0.9.0cu111 torchaudio0.8.0 -f https://…

maven学习总结

众所周知&#xff0c;maven的两大作用是项目构建和依赖管理&#xff0c;除此之外&#xff0c;基于多模块项目&#xff0c;maven常用的功能还有模块化管理。 项目构建 Maven是一个构建工具&#xff0c;可以根据项目中的配置文件&#xff08;pom.xml&#xff09;来自动执行项目…

2023年Java核心技术第十一篇(篇篇万字精讲)

目录 二十一 . Java并发包提供了哪些并发工具类 21.1 典型回答 21.1 .1 CountDownLatch 21.1 .2 CyclicBarrier 21.1 .2.1 例子&#xff1a; 21.1 .2.2 输出结果&#xff1a; 21.1.2.3 详细解释&#xff1a;屏障点 21.1.3 Semaphore 21.1.3.1 使用 Semaphore例子&#xff1…

ros::NodeHandle用途用法

在ROS(Robot Operating System)中,ros::NodeHandle 是一个核心类,用于与ROS系统进行交互。几乎所有的ROS节点功能,例如发布或订阅主题、调用或提供服务,都需要使用到 ros::NodeHandle。 用途: 与ROS系统交互:ros::NodeHandle 是节点与ROS计算图系统进行通讯的主要接口…

GCC和G++的区别

GCC和G是我们在学习C/C并且进行编译的过程中&#xff0c;必会的知识点&#xff0c;今天小雷雷针对这个聊几句&#xff0c;嗯哼哼~ &#x1f449;&#x1f449;&#x1f449;gcc和g都是C/C的编译器&#xff0c;但是它们之间存在一些区别 GCC和G的渊源 GCC&#xff08;GNU Comp…

【C语言进阶(10)】通讯录管理系统

文章目录 Ⅰ 系统功能介绍Ⅱ 系统前期准备⒈菜单功能⒉结构体设计⒊通讯录初始化 Ⅲ 系统功能实现⒈添加联系人⒉删除联系人⒊查找联系人⒋修改联系人⒌显示联系人⒍排序联系人⒎清空联系人 Ⅳ 完整代码展示⒈test.c⒉contact.h⒊contact.c Ⅰ 系统功能介绍 系统中需要实现的功…

matlab 计算点云协方差矩阵

目录 一、概述1、算法概述2、主要函数二、代码示例三、结果展示四、参数解析输入参数输出参数五、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述

java 可变参数

基本语法 可变参数的语法很简单&#xff0c;基本格式如下&#xff1a; 方法名(参数类型 ...)举例 public void printName(String... names) {int count names.length;for (int i 0; i < names.length; i) {System.out.println(names[i]);} }

气传导蓝牙耳机好不好?推荐几款不错的气传导耳机

​在众多的气传导耳机中&#xff0c;如何选择一款适合自己的气传导耳机呢&#xff1f;这需要考虑到自己的需求和预算&#xff0c;同时也需要了解不同品牌和型号的产品特点和优缺点。下面我来推荐几款非常不错的气传导耳机给大家参考&#xff0c;希望大家都能寻找到心仪那款。 …

【线性代数】矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)

矩阵求导的本质与分子布局、分母布局的本质&#xff08;矩阵求导——本质篇&#xff09; 说在前面一. 函数与标量、向量、矩阵二. 矩阵求导的本质三. 矩阵求导结果的布局四. 分子布局、分母布局的本质五. 向量变元的实值标量函数 说在前面 我将严谨地说明矩阵求导的本质与分子布…