C++ 的关键字(保留字)介绍

一.C++中部分关键字的用法

1. auto

关键字auto是C++11引入的,它可以用于变量声明和函数返回类型的推导。当你不关心变量的具体类型时,可以使用auto来让编译器根据初始化表达式推导出变量的类型。这样可以简化代码,提高可读性。
1.在for循环中遍历容器时,使用auto可以简化迭代器的类型声明:

std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto it = vec.begin(); it != vec.end(); ++it) {// 使用it进行操作
}

2.使用new或make_*函数创建对象时,使用auto可以简化指针或智能指针的类型声明:

auto ptr = std::make_shared<int>(42);

3.在表达式模板等复杂情况下,使用auto可以让编译器推导出表达式的类型,避免手动书写复杂的类型声明:

auto result = expression1 * expression2 + expression3;

2.bool

用于声明布尔类型的变量,布尔类型的变量存储true或false两个值。布尔类型变量除了存储true和false之外,实际上在C++中,它们可以存储其他整数值。当布尔类型变量被赋予一个非零的整数值时,它会被视为true;当被赋予零时,它会被视为false。
1.基本用法:

bool isReady = true;
bool isFinished = false;

2.条件语句: bool类型通常用于条件语句中

bool isRaining = true;
if (isRaining) {// do something
} else {// do something else
}

3.逻辑运算: bool类型通常与逻辑运算符一起使用,例如&&(与)、||(或)、!(非):

bool hasMoney = true;
bool hasTime = false;
if (hasMoney && !hasTime) {// do something
}

4.函数返回值: bool类型常用作函数的返回值,表示函数执行的成功或失败。

bool isValidInput(int value) {if (value > 0) {return true;} else {return false;}
}

3.break

用于在循环或者 switch 语句中终止当前的循环。
1.在循环中使用 break:

  • 当 break 语句被执行时,它会立即终止当前的循环,然后程序的执行流程会跳转到循环后面的语句。
  • break 通常用于 for、while、do-while 等循环中,以提前结束循环。
  • 如果是多层循环时,break只是跳出当前所在的循环,并不会跳出所有循环。
#include <iostream>
using namespace std;int main() {for (int i = 0; i < 10; i++) {if (i == 5) {break;  // 当 i 等于 5 时,终止循环}cout << i << " ";}return 0;
}

2.在 switch 语句中,每个 case 后面通常会跟随一个 break 语句,以确保在匹配到一个 case 后,程序会跳出 switch 语句,而不会继续执行后续的 case。

#include <iostream>
using namespace std;int main() {int num = 2;switch (num) {case 1:cout << "Number is 1" << endl;break;case 2:cout << "Number is 2" << endl;break;  // 终止 switch 语句case 3:cout << "Number is 3" << endl;break;default:cout << "Number is not 1, 2, or 3" << endl;}return 0;
}

4.catch

用于捕获异常并进行处理。当在try块中抛出异常时,catch块会捕获并处理该异常。

#include <iostream>
using namespace std;int main() {try {throw 20;} catch (int e) {cout << "捕获到异常。异常编号:" << e << endl;}return 0;
}

最终打印:捕获到异常。异常编号:20

5.continue

用于在循环结构中控制程序的执行流程。当程序执行到continue语句时,会立即跳过当前循环中剩余的代码,然后继续下一次循环的执行。

#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) {continue;  // 当i等于3时,跳过当前循环,继续下一次循环}cout << "当前的i值为: " << i << endl;}return 0;
}

6.enum

用于定义枚举类型,它允许我们创建一个新的数据类型,该数据类型具有一组固定的可能值,并且变量可以从这组值中选择一个。

// 定义一个枚举类型
enum Days {Saturday, Sunday, Tuesday, Wednesday, Thursday, Friday};// 声明一个枚举变量并初始化
Days day = Saturday;// 使用枚举变量进行比较
if (day == Saturday) {std::cout << "今天是星期六" << std::endl;
}
  • 默认情况下,第一个名称Saturday的值为 0,第二个名称Sunday的值为 1,第三个名称Tuesday的值为 2,以此类推。
  • 也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。
enum Days {Saturday, Sunday = 3, Tuesday, Wednesday, Thursday, Friday};

那么:Saturday依旧还是0,Sunday = 3,Tuesday = 4,依次类推,后面的值都比前一个大1。

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

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

相关文章

Mysql索引一篇就够了

索引 定义 索引是对数据库表中一列或者多列的值进行排序的结构。 目的 数据库索引好比一本书的目录&#xff0c;提高查询效率。但是为表设置索引要付出相应的代价&#xff1a; 增加了数据库的存储空间 在插入和修改时需花费更多的时间&#xff08;因为索引也要随之变动&#…

一、C#笔记

1.注释 /*多行注释*/class HelloWorld{ void Hello(){Console.WriteLine("Hello!");//单行注释}} 2.理解语句 2.1方法、语法、语义 2.2使用标识符 标识符语法规则&#xff1a; 只能使用字母&#xff08;大写和小写&#xff09;、数字和下划…

C++相关闲碎记录(5)

1、容器提供的类型 2、Array Array大小固定&#xff0c;只允许替换元素的值&#xff0c;不能增加或者移除元素改变大小。Array是一种有序集合&#xff0c;支持随机访问。 std::array<int, 4> x; //elements of x have undefined value std::array<int, 5> x {…

渗透测试——七、网站漏洞——命令注入和跨站请求伪造(CSRF)

渗透测试 一、命令注入二、跨站请求伪造(CSRF)三、命令注入页面之注人测试四、CSRF页面之请求伪造测试 一、命令注入 命令注入(命令执行) 漏洞是指在网页代码中有时需要调用一些执行系统命令的函数例如 system()、exec()、shell_exec()、eval()、passthru()&#xff0c;代码未…

基于ssm在线云音乐系统的设计与实现论文

摘 要 随着移动互联网时代的发展&#xff0c;网络的使用越来越普及&#xff0c;用户在获取和存储信息方面也会有激动人心的时刻。音乐也将慢慢融入人们的生活中。影响和改变我们的生活。随着当今各种流行音乐的流行&#xff0c;人们在日常生活中经常会用到的就是在线云音乐系统…

走迷宫(详细分析)

目录 一、课题描述 输入样例&#xff1a; 输出样例&#xff1a; 二、需求分析 输入的形式和输入值的范围&#xff1a; 输出的形式&#xff1a; 程序所能达到的功能&#xff1a; 三、概要设计 四、流程图 五 、代码详细注释 六、测试数据和结果 一、课题描述 以一个…

freeswitch webrtc video_demo客户端进行MCU的视频会议

系统环境 一、编译服务器和加载模块 二、下载编译指定版本video_demo 三、配置verto.conf.xml 1.修改配置文件 2.重新启动 四、MCU通话测试 1.如何使用video_demo 2.测试结果 五、MCU的通话原理及音频/视频/布局/管理员等参数配置 附录 freeswitch微信交流群 系统环境 lsb_rel…

MyBatis处理映射关系

在Mybatis实现数据处理过程中&#xff0c;字段名符合数据库的规则&#xff0c;属性一般为驼峰规则&#xff0c;因此字段名和属性名通常不一致&#xff0c;此时可以通过以下两种方式对数据库字段进行映射处理&#xff1a; 为字段起别名&#xff0c;保证和实体类中的属性名一致在…

lv11 嵌入式开发 IIC(下) 20

目录 1 Exynos4412下IIC控制器介绍 1.1 总览 1.2 特征 1.3 工作框图 1.4 其他内容介绍 1.5 四种工作模式寄存器流程 2 IIC寄存器详解 2.1 概述 2.2 控制寄存器 2.3 状态寄存器 2.4 地址寄存器 2.5 数据寄存器 2.6 其他寄存器 3 MPU06050 3.1 简介 3.2 MPU6050主…

HJ103 Redraiment的走法

题目&#xff1a; HJ103 Redraiment的走法 题解&#xff1a; dfs 暴力搜索 枚举数组元素&#xff0c;作为起点如果后续节点大于当前节点&#xff0c;继续向后搜索记录每个起点的结果&#xff0c;求出最大值 public int getLongestSub(int[] arr) {int max 0;for (int i 0…

data_loader返回的每个batch的数据大小是怎么计算得到的?

data_loader是一个通用的术语&#xff0c;用于表示数据加载器或数据批次生成器。它是在机器学习和深度学习中常用的一个概念。 一、data loader 数据加载器&#xff08;data loader&#xff09;是一个用于加载和处理数据集的工具&#xff0c;它可以将数据集划分为小批次&#…

提示(Prompt)工程中提示词的开发优化基础概念学习总结

本文对学习过程进行总结&#xff0c;仅对基本思路进行说明&#xff0c;结果在不同的模型上会有差异。 提示与提示工程 提示&#xff1a;指的是向大语言模型输入的特定短语或文本&#xff0c;用于引导模型产生特定的输出&#xff0c;以便模型能够生成符合用户需求的回应。 提示…

内存学习——堆(heap)

目录 一、概念二、自定义malloc函数三、Debug运行四、heap_4简单分析4.1 heap管理链表结构体4.2 堆初始化4.3 malloc使用4.4 free使用 一、概念 内存分为堆和栈两部分&#xff1a; 栈&#xff08;Stack&#xff09;是一种后进先出&#xff08;LIFO&#xff09;的数据结构&…

AVFormatContext封装层:理论与实战

文章目录 前言一、封装格式简介1、FFmpeg 中的封装格式2、查看 FFmpeg 支持的封装格式 二、API 介绍三、 实战 1&#xff1a;解封装1、原理讲解2、示例源码 13、运行结果 14、示例源码 25、运行结果 2 四、 实战 2&#xff1a;转封装1、原理讲解2、示例源码3、运行结果 前言 A…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑电力-交通交互的配电网故障下电动汽车充电演化特性》

这个标题涉及到电力系统、交通系统和电动汽车充电的复杂主题。让我们逐步解读&#xff1a; 考虑电力-交通交互的配电网故障&#xff1a; 电力-交通交互&#xff1a; 指的是电力系统和交通系统之间相互影响、相互关联的关系。这可能涉及到电力需求对交通流量的影响&#xff0c;反…

回溯算法之N皇后

一 什么是回溯算法 回溯算法&#xff08;Backtracking Algorithm&#xff09;是一种用于解决组合优化问题的算法&#xff0c;它通过逐步构建候选解并进行验证&#xff0c;以寻找所有满足特定条件的解。回溯算法通常应用于在给定约束条件下枚举所有可能解的问题&#xff0c;如…

Git—文件添加查看删除修改

目录 1.添加文件—场景一 2.查看.git文件 3.添加文件—场景三 4.修改文件 5.版本回退 6.撤销修改 7.删除文件 1.添加文件—场景一 在包含.git的目录下新建⼀个ReadMe文件&#xff0c;我们可以使用 git add 命令可以将文件添加到暂存 区&#xff1a; ●添加一个或多个文…

Matlab数学建模算法之小波神经网络详解

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 &#x1f510;#### 防伪水印——左手の明天 ####&#x1f510; &#x1f497; 大家…

vue的属性

key 预期&#xff1a;number | string | boolean (2.4.2 新增) | symbol (2.5.12 新增) key 的特殊 attribute 主要用在 Vue 的虚拟 DOM 算法&#xff0c;在新旧 nodes 对比时辨识 VNodes。如果不使用 key&#xff0c;Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地…

2022蓝桥杯c组求和

题目名字 求和 题目链接 题意 输入的每个数都要两两相乘&#xff0c;然后再加起来&#xff0c;求最后总和&#xff1b; 思路 每个数乘这个数的前缀和即可 算法一&#xff1a;前缀和 实现步骤 先把前缀和写出来再写for循环每个数都乘以自己的前缀和&#xff1b; 实现步骤 直接…