【C++】 switch 语句case后面可以跟 string变量吗? case后面可以怎么跟 string变量?

文章目录

在 C++ 中,case 语句通常是用于 switch 语句中,用来匹配整数或枚举类型的常量。在标准的 C++ 中,case 语句后面不能直接跟字符串变量,因为 case 语句要求其后面是一个常量表达式

如果想在 switch 语句中匹配字符串,可以将字符串转换为整数或者使用其他方法来实现。一种常见的方法是使用 std::unordered_map 或 std::map 来将字符串映射到整数,然后在 switch 语句中使用整数进行匹配。

下面是一个示例,演示了如何使用 std::unordered_map 来将字符串映射到整数,然后在 switch 语句中使用整数进行匹配:

#include <iostream>
#include <unordered_map>int main() {std::unordered_map<std::string, int> stringToIntMap = {{"apple", 1},{"banana", 2},{"orange", 3}};std::string fruit = "banana";// 使用整数进行匹配switch (stringToIntMap[fruit]) {case 1:std::cout << "Selected fruit: apple" << std::endl;break;case 2:std::cout << "Selected fruit: banana" << std::endl;break;case 3:std::cout << "Selected fruit: orange" << std::endl;break;default:std::cout << "Unknown fruit" << std::endl;}return 0;
}

在上述示例中,我们将字符串映射到整数,然后在 switch 语句中使用整数进行匹配。这样做的好处是可以避免使用大量的 if-else 来匹配字符串,同时也能保持 switch 语句的结构清晰

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

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

相关文章

职场人必备!效率翻倍的多微信号必备管理工具大揭秘

在职场中&#xff0c;高效率的工作方式是非常重要的。而为了提高工作效率&#xff0c;合理运用一些工作神器也是必不可少的。今天给大家分享一个多微信号管理工具——微信管理系统&#xff0c;它能够帮助职场人员管理多个微信号&#xff0c;让工作变得更加高效。 首先&#xf…

mamba的学习记录

最近新出了一种很火的架构mamba&#xff0c;听说吊打transformer&#xff0c;特此学习一下&#xff0c;总结一下学习的内容。 state-spaces/mamba (github.com)3个月8Kstar&#xff0c;确实有点受欢迎。 目录 1.先验 RNN​ LSTM ​2.mamba State Space Models​ Selecti…

Django 自定义中间件(IP限制频率、用户权限)

【一】用户权限 &#xff08;1&#xff09;要求 不同的用户&#xff0c;有不同的操作权限比如 超级管理员&#xff0c;拥有所有权限管理员可以增加、查询、修改普通用户只能查询 &#xff08;2&#xff09;逻辑梳理 理论来说&#xff0c;这个权限需要保存在数据库中 但是这…

React和Vue.js的有什么区别

在当今前端开发领域&#xff0c;React 和 Vue.js 作为两大热门的前端框架备受开发者关注。它们各自拥有独特的特点和优势&#xff0c;在实际项目中有着广泛的运用。本文将深入探讨 React 和 Vue.js 之间的区别&#xff0c;从组件化方式、数据绑定、模板语法以及生态系统和工具支…

案例 | 华院计算x第一财经:我和我的数智人唱双簧

创新关乎命运&#xff0c;科技引领未来。生成式人工智能(AIGC)给传媒行业发展带来严峻挑战的同时&#xff0c;也带来千载难逢的重大发展机遇。2024年政府工作报告中提出&#xff0c;要深化大数据、人工智能等研发应用&#xff0c;开展“人工智能”行动&#xff0c;打造具有国际…

俚语加密漫谈

俚语加密是一种古老而有效的通信方式&#xff0c;将特定词语或短语在群体内赋予特殊含义&#xff0c;从而隐藏真实信息。类似于方言&#xff0c;它在历史上的应用不可忽视。随着计算机时代的到来&#xff0c;现代密码学通过数学运算编织密语&#xff0c;使得加密变得更加高深莫…

【win10 win11添加右键】git bash

打开注册表编辑器。 按下Win键 R&#xff0c;然后输入”regedit”并按下回车键来打开注册表编辑器。计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\git_bash\command2. 导航到注册表路径&#xff1a;依次展开”HKEY_CLASSES_ROOT\Directory\Background\shell”。右键…

【数据结构】 HashMap源码分析(常量+构造方法+方法)

文章目录 HashMap源码分析一、成员常量二、构造方法三、方法1.此时假定为进行了无参构造&#xff0c;没有分配内存2.当发生有参构造时&#xff0c;完成对容量的大小判断后&#xff0c;将容量大小&#xff0c;传进tableSizeFor方法中&#xff1a; HashMap源码分析 一、成员常量…

iptables笔记

简介&#xff1a; iptables的前身叫ipfirewall &#xff08;内核1.x时代&#xff0c;当内核发展到2.x系列的时候&#xff0c;软件更名为ipchains&#xff0c;现在更名iptables&#xff0c;可以将规则组成一个列表&#xff0c;实现绝对详细的访问控制功能。 工作在用户空间中&…

如何使用Docker轻松构建和管理应用程序(二)

上一篇文章介绍了 Docker 基本概念&#xff0c;其中镜像、容器和 Dockerfile 。我们使用 Dockerfile 定义镜像&#xff0c;依赖镜像来运行容器&#xff0c;因此 Dockerfile 是镜像和容器的关键&#xff0c;Dockerfile 可以非常容易的定义镜像内容&#xff0c;同时在我们后期的微…

JDK8中ArrayList扩容机制

前言 这是基于JDK8的源码分析&#xff0c;在JDK6之前以及JDK11之后细节均有变动&#xff01;&#xff01; 首先来看ArrayList的构造方法 public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.Seriali…

VUE3——Proxy API 与VUE2——defineProperty API区别

一、Object.defineProperty 定义&#xff1a;Object.defineProperty() 方法会直接在一个对象上定义一个新属性&#xff0c;或者修改一个对象的现有属性&#xff0c;并返回此对象 为什么能实现响应式 通过defineProperty 两个属性&#xff0c;get及set get 属性的 getter 函…

LeetCode刷题---查询近30天活跃用户数

1.给出满足的条件&#xff0c;截止至2019-07-27的近30天 activity_date BETWEEN DATE_ADD(2019-07-27,INTERVAL -29 day) and 2019-07-27这里使用了Between and 函数和 Date_add函数 2.按照日期分组&#xff0c;统计活跃用户个数 select activity_date day,count(distinct(us…

Python学习之-基础语法

第1关&#xff1a;行与缩进 任务描述 本关任务&#xff1a;改正代码中不正确的缩进&#xff0c;使其能够正常编译&#xff0c;并输出正确的结果。 编程要求 根据提示&#xff0c;改正右侧编辑器中代码的缩进错误&#xff0c;使其能够正确运行&#xff0c;并输出结果。 测试说明…

AcWing 1215. 小朋友排队 (树状数组)

n n n 个小朋友站成一排。 现在要把他们按身高从低到高的顺序排列&#xff0c;但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。 开始的时候&#xff0c;所有小朋友的不高兴程度都是 0 0 0。 如果某个小朋友第一次被要求交换&#xff0c;则他的不…

蓝桥杯的数论总结

声明 我只是把数论相关的东西放在了一起&#xff0c;会有自己的理解&#xff0c;所以会有错误哈&#xff0c;欢迎在评论区中指出&#xff0c;另外有啥看不懂的也可以在评论区留言&#xff0c;我看到后就回你 质数 暴力 质数一般都是奇数&#xff0c;除了2小于2的不用考虑了…

Elasticsearch优化

集群配置 1、调整副本数&#xff1a;考虑数据的可用性和读取性能&#xff0c;合理配置分片的副本数。 2、合理配置分片大小(分片的合理容量&#xff1a;10GB-50GB)&#xff1a;避免分片过大&#xff0c;以确保更好的性能和均衡的负载。 3、监控集群状态&#xff1a;使用监控工…

mysql服务

任务描述:请安装mysql服务,建立数据表。 配置linux2为mysql服务器,创建数据库用户xiao,在任意机器上对所有数据库有完全权限。 创建数据库userdb;在库中创建表userinfo,表结构如下: 字段名 数据类型 主键

vue3+threejs新手从零开发卡牌游戏(十六):初始化对方手牌

添加对方手牌区时注意位置调整&#xff0c;以及手牌应该是背面朝上&#xff0c;加个rotateX翻转即可&#xff0c;其他代码和p1.vue代码一致&#xff0c;game/hand/p2.vue代码如下&#xff1a; <template><div></div> </template><script setup lan…

STL的基本概念

一、STL的诞生 长久以来&#xff0c;软件界一直希望建立一种可重复利用的东西 C的面向对象和泛型编程思想&#xff0c;目的就是复用性的提升 面向对象的三大特性(简单理解) 封装&#xff1a;把属性和行为抽象出来作为一个整体来实现事和物 继承&#xff1a;子类继承父类&a…