枚举法——C++算法【泪光2929】

前言
         "打牢基础,万事不愁" .C++的基础语法的学习."学以致用,边学边用",编程是实践性很强的技术,在运用中理解,总结.

引入
       枚举在成熟框架中,用得还挺多的.枚举可以让程序更容易理解

        之前写过一篇关于枚举的帖子---  白话编程---数据篇(4)枚举-CSDN博客

        现在看看是以纯C写的,内容不够完整.现以C++做个补充

枚举的编程思想
        枚举的意义是让程序可读性更强.他有三种形式,这三种形式的目的是相同的:参数符号化.也就是说他的编程思想是符号化参数.

C++中枚举的三种形式
        枚举有三种形式: 符号常量集合, 无类作用域枚举,类作用域枚举 .其中符号常量集合可以完全替代常量(一般是整型常量),后两种被看作自建的新数据类型.

 符号常量集合
        第一种枚举是完全的字面常量替代.还有一种符号常量const int LENGTH=10;枚举相当于符号

常量的集合:

        1,书写形式:下面的表达完全是一样.

enum {SLEEP=1,WORK=2,EAT=3}
const int SLEEP=1;
const int WORK=2;
const int EAT=3;

        2,使用举例:

#include<iostream>
enum {SLEEP=1,WORK=2,EAT=3};
void doSomething(int num);int main(void) {using namespace std;doSomething(SLEEP);		//枚举做参数,可读性强doSomething(1);			//整型常量做参数doSomething(2);			//整型常量做参数
}void doSomething(int num) {if(num==1)std::cout << "我在做梦" << std::endl;if(num==2)std::cout << "我在写代码" << std::endl;if(num==3)std::cout << "我在吃肉" << std::endl;
}

说明:符号常量型枚举的思路和实现步骤如下

        1)需求:想表达一串逻辑,在"情形1","情形2"...等多种情形下做什么事, 

        2)函数声明用int类型做形参,函数内部逻辑和形参相关;

        3)定义符号常量型枚举

        4)调用函数时传入枚举

在C++标准函数库中,异常部分有调用exit(SUCCESS);  exit(FAILURE)就是其应用

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

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

相关文章

HarmonyOS NEXT应用开发-Notification Kit(用户通知服务)notificationManager.cancelAll

1.notificationManager.cancelAll 支持设备Phone2in1TabletCarWearable cancelAll(callback: AsyncCallback<void>): void 取消当前应用所有已发布的通知。使用callback异步回调。 系统能力&#xff1a;SystemCapability.Notification.Notification 示例&#xff1a; …

Mac 创建QT按钮以及一些操作

在创建QT项目好 后我们打开mainwindow.cpp&#xff0c;下面所示的代码都是在这个cpp文件里面因为它是窗口的入口函数 #include "mainwindow.h" #include "ui_mainwindow.h" #include<QPushButton>//按钮的头文件MainWindow::MainWindow(QWidget *pa…

开源协议全解析:类型、选择与法律风险规避指南

[TOC] 在当今开源软件主导的技术生态中&#xff0c;开源协议&#xff08;Open Source License&#xff09;是决定项目能否被商业使用、二次开发的关键法律文件。据统计&#xff0c;GitHub上超过70%的项目使用某种形式的开源协议&#xff0c;但其中近30%存在协议兼容性问题。本…

TM1668芯片学习心得一

一、TM1668 是一种带键盘扫描接口的LED&#xff08;发光二极管显示器&#xff09;驱动控制专用电路&#xff0c;内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良&#xff0c;质量可靠。主要应用于VCR。 学习链接 二、 三、显示寄存器的地址…

时空特征如何融合?LSTM+Resnet有奇效,SOTA方案预测准确率超91%

LSTM有着不错的时序信息提取能力&#xff0c;ResNet有着不错的空间特征信息提取能力。如果现在有时空特征融合的创新需求&#xff0c;我们是否能将LSTM和ResNet两者的优点融合起来呢&#xff1f; 随着这个思路下去&#xff0c;LSTM ResNet混合模型横空出世&#xff0c;在各个…

[PRO_A7] SZ501 FPGA开发板简介

SZ501 FPGA开发板简介 概述 SZ501 FPGA开发板是专为高性能FPGA设计、快速原型开发和复杂应用调试打造的先进开发平台。搭载Xilinx Artix-7系列XC7A100T FPGA芯片&#xff0c;SZ501提供卓越的逻辑运算能力和灵活的接口支持&#xff0c;广泛适用于通信、信号处理、嵌入式系统及…

企业微信jdk 授权 记录

1、npm install wecom/jssdk 2、index.html 引入 <script src"https://wwcdn.weixin.qq.com/node/open/js/wecom-jssdk-2.0.2.js"></script> 3、创建js import * as ww from "wecom/jssdk"; /*** 获取企业微信jdk局方法----------------…

Android13增加第三方类实现加入到系统

1、将需要的添加包放在/frameworks/base/core/java/com目录下&#xff0c;比如devmgr/devicemgr/DeviceMgr.java package com.devmgr.devicemgr; import android.content.Context; public class DeviceMgr {private volatile static DeviceMgr instance null;private Context…

计算机网络核心知识点全解析(面试通关版)

一、网络体系结构&#xff1a;从OSI到TCP/IP的分层设计 1.1 七层模型与四层模型对比 OSI七层模型核心功能TCP/IP四层对应典型协议生活类比应用层为应用程序提供服务&#xff08;如文件传输、邮件、Web浏览&#xff09;应用层HTTP、FTP、SMTP、DNS快递面单信息&#xff08;收件…

AI图稿生成订单管理系统

让设计生产“零误差、全自动、秒响应” 一、核心价值&#xff1a;重构设计到生产的效率革命 效率提升70% 告别人工排版&#xff0c;AI自动复用历史稿件模板&#xff0c;单次设计永久沉淀为可调用资产&#xff1b; 印刷文件生成速度达20万张/分钟&#xff0c;满足电商大促、…

TwinCAT数据类型,%MX,%MD这些特殊符号

在 TwinCAT&#xff08;Beckhoff PLC 编程环境&#xff09;中&#xff0c;%MX、%MD 等符号是 IEC 61131-3 标准的地址表示法&#xff0c;用于直接访问 PLC 的物理 I/O 或内存区域。这些符号通常用于 变量声明 或 直接寻址&#xff0c;特别是在 TwinCAT 2 和 传统 PLC 编程 中较…

基于UNet算法的农业遥感图像语义分割——补充版

前言 本案例希望建立一个UNET网络模型&#xff0c;来实现对农业遥感图像语义分割的任务。本篇博客主要包括对上一篇博客中的相关遗留问题进行解决&#xff0c;并对网络结构进行优化调整以适应个人的硬件设施——NVIDIA GeForce RTX 3050。 本案例的前两篇博客直达链接基于UNe…

Compose笔记(二十一)--AnimationVisibility

这一节主要了解一下Compose的AnimationVisibility,AnimatedVisibility 是 Jetpack Compose 里用于实现组件可见性动画效果的组件&#xff0c;借助它能让组件在显示和隐藏时带有平滑的过渡动画&#xff0c;从而提升用户体验。现总结如下: API 1. visible 含义&#xff1a;这是一…

基于 HT 构建 2D 智慧仓储可视化系统的技术解析

在当今数字化时代&#xff0c;仓储管理对于企业的运营效率和成本控制愈发关键。图扑软件&#xff08;Hightopo&#xff09;凭借其强大的 HT for Web 产品&#xff0c;打造出 2D 智慧仓储可视化平台&#xff0c;为仓储管理带来了全新的技术解决方案。 HT 是一款基于 WebGL、can…

HTML ASCII 编码详解

HTML ASCII 编码详解 引言 HTML&#xff08;HyperText Markup Language&#xff09;是一种用于创建网页的标准标记语言。在HTML中&#xff0c;字符的表示方式非常重要&#xff0c;因为它直接影响到网页内容的显示效果。ASCII编码作为一种基本的字符编码方式&#xff0c;在HTM…

pinia-plugin-persistedstate的使用

pinia持久化存储的使用 安装 npm install pinia-plugin-persistedstate 注册 import { createPinia } from pinia import piniaPluginPersistedstate from pinia-plugin-persistedstateconst pinia createPinia() pinia.use(piniaPluginPersistedstate)export default pinia …

Vue:el-table-tree懒加载数据

目录 一、出现场景二、具体使用三、修改时重新加载树节点四、新增、删除重新加载树节点 一、出现场景 在项目的开发过程中&#xff0c;我们经常会使用到表格树的格式&#xff0c;但是犹豫数据较多&#xff0c;使用分页又不符合项目需求时&#xff0c;就需要对树进行懒加载的操…

ChipCN IDE KF32 导入工程后,无法编译的问题

使用ChipON IDE for KungFu32 导入已有的工程是时&#xff0c;发现能够编译&#xff0c;但是点击&#xff0c;同时选择硬件调试时 没有任何响应。查看工程调试配置时&#xff0c;发现如下问题&#xff1a; 没有看到添加有启动配置&#xff0c;说明就是这里的问题了(应该是IDE的…

前端笔记-Element-Plus

结束了vue的基础学习&#xff0c;现在进一步学习组件 Element-Plus部分学习目标&#xff1a; Element Plus1、查阅官方文档指南2、学习常用组件的使用方法3、Table、Pagination、Form4、Input、Input Number、Switch、Select、Date Picker、Button5、Message、MessageBox、N…