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.pswp.cn/news/211833.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211833.shtml
英文地址,請注明出處:http://en.pswp.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; 實現步驟 直接…