【C++11:右值引用,列表初始化】

統一列表初始化:

構造函數的函數名與函數體之間增加一個列表,用于對成員初始化

在實例化對象時,支持單/多參數的隱式轉化,同時也可以省略=符號,讓代碼更簡潔?


右值的引用?

左值:

  • 左值與右值的重要區別就是能否取地址,左值可以取地址,右值不能取地址(這并不帶表右值沒有地址)
  • 左值,右值的底層都是指針

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

  • 左值不一定是一個值,也有可能是一個表達式
  • 在函數中,左值引用作為返回值,返回函數中的局部對象不可取,會返回一個野引用

右值:

  • &&能給右值取別名
  • 左值引用&不能給右值取別名,但加了const修飾可以
  • 右值的引用本身是左值
  • 函數調用返回的值,表達式返回的值等都叫右值
  • string("11111");
    func1(2);//函數調用,func1返回一個Int
    int x,y=1;
    x+y;

    純右值&將亡值

  • 純右值是內置類型
  • 將亡值是自定義類型

萬能引用

完美轉發forward:

在模板中,接受左值,就轉化為左值,接受右值就轉化為右值

移動構造和移動賦值

  • 在函數調用中,參數使用右值引用可以在函數調用結束后,轉移資源,相比于傳統的寫法來講,降低了代價,傳統寫法,函數調用結束后,會有一個拷貝構造和一個賦值拷貝,但右值引用直接解決了這一問題,只需要把資源轉移即可。
  • 舉例:人在快要失去生命時,會選擇留下自己的器官造福別人,這里轉移了將亡的人的器官資源,道理與右值引用的類似
  • 移動構造和移動賦值針對的是深拷貝的自定義類型對象。

lambda?

  • 參數列表可省略,返回值可省略
  • lambda就算內容一模一樣,類型也是不一樣的。lambda的底層是由仿函數實現的
  • lambda的捕捉列表
  1. 傳值捕捉
  2. 傳引用捕捉
  3. 混合捕捉

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38949.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38949.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38949.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

全國產化飛騰模塊BIOS下修復系統啟動文件

1、背景介紹 全國產飛騰模塊采用麒麟信安操作系統,當系統下面的grub.cfg文件被用戶誤操作導致無法啟動時,可以在BIOS下通過U盤中備份的grub.cfg替換硬盤上原來的grub.cfg文件,從而實現啟動。 2、操作步驟 首先進入BIOS命令行模式&#xff…

Meta低頭,庫克認錯,XR回歸第一性原理

圖片|Photo by Maxim Hopman on Unsplash ©自象限原創 作者丨羅輯 2024年,XR的故事應該怎么講? 如果從數據上看,這應該是個沉重的話題。 根據 IDC 報告,2023 年全球 VR 市場出貨量下滑了 10.7%。2024 年第一…

【必看】賣慘營銷

經常賣慘的人到底是什么心理? Berry Ni同學說: 吸引別人的注意力。想要得到關注。 讓你降低對他的期待。 讓你能夠在他做好一件小事的情況下就表揚他。 控制你對他的想法認知。 ? 浪矢心理同學說: 1,求關注。他覺得買慘有好處&…

【Excel、RStudio計算T檢測的具體操作步驟】

目錄 一、基礎知識1.1 顯著性檢驗1.2 等方差T檢驗、異方差T檢驗1.3 單尾p、雙尾p1.3.1 檢驗目的不同1.3.2 用法不同1.3.3 如何選擇 二、Excel2.1 統計分析工具2.1.1 添加統計分析工具2.1.2 數據分析 2.2 公式 -> 插入函數 -> T.TEST 三、RStudio 一、基礎知識 參考: 1.…

Gradle學習-4 創建二進制插件工程

二進制插件工程創建有兩種方式: 創建獨立的工程,調試的時候,需要手動發布成一個二進制插件jar包,給其他工程里面引用,進行功能測試。這種方式是比較麻煩的。創建buildSrc子工程,它是一個大工程中的子工程&…

開源網安榮獲第一新聲“2024中國最佳信創安全廠商”,信創實力獲認可

近日,由權威機構【第一新聲】與【天眼查】聯合發起的“2024中國最佳信創廠商系列榜單”評選中,開源網安以其技術創新能力和在信創領域持續投入,成功入選“中國最佳信創安全廠商”。 開源網安,作為軟件安全領域創領者,自…

數據結構 - C/C++ - 棧

目錄 結構特性 結構實現 結構容器 結構設計 順序棧 鏈式棧 結構特性 棧(stack)是線性表的一種形式,限定僅在表的一端進行插入或者刪除的操作。 棧頂 - 表中允許插入、刪除的一端稱為棧頂(top),棧頂位置是可以發生變化的。 插入 - 進棧、入棧、壓棧…

數據結構預科

在堆區申請兩個長度為32的空間,實現兩個字符串的比較【非庫函數實現】 要求: 1> 定義函數,在對區申請空間,兩個申請,主函數需要調用2次 2> 定義函數,實現字符串的輸入,void input(char …

31 C++11

本節目標 c11簡介列表初始化變量類型推導范圍for循環新增加容器右值新的類功能可變參數模板 1. c11簡介 在2003年標準委員會提交了一份計數勘誤表(簡稱TC1),使得c03這個名字已經取代了c98稱為c11之前的最新的c標準名稱。不過由于c03&#x…

JAVA學習筆記DAY12——MySQL基礎

文章目錄 數據庫概述為什么要使用數據庫相關概念關系型和非關系型RDBMS非RDBMS - NoSQL MySQL圖形化管理工具Navicat SQL前后端環境nginx 反向代理MD5加密 數據庫概述 為什么要使用數據庫 持久化:指把數據保存到可掉電存儲設備中,一般指將內存中的數據…

詳解歸一化、標準化、正則化以及batch normalization

文章目錄 what(是什么)where(用在哪)How(如何用&&原理)歸一化實現方式原理示例說明 標準化實現方式原理示例說明 正則化實現方式原理作用 Batch Normalizationpytorch中的batch normalization原理BN的作用 歸一化、標準化…

代理設計模式和裝飾器設計模式的區別

代理設計模式: 作用:為目標(原始對象)增加功能(額外功能,拓展功能) 三種經典應用場景: 1:給原始對象增加額外功能(spring添加事務,Mybatis通過代理實現緩存功能等等) 2:遠程代理(網絡通信,輸出傳輸(RPC,D…

【TB作品】智能臺燈,ATMEGA16單片機,Proteus仿真

智能臺燈 1 adc檢測光強光敏電阻 顯示電壓 2 光強太高 也就是高于臨界值 就關閉小燈 3 光強太低 也就是低于臨界值 就打開小燈 3 按鍵修改臨界值 顯示 實驗報告:基于ATMEGA16單片機的智能臺燈設計與Proteus仿真 1. 實驗背景 智能臺燈是一種能夠根據環境光強自動調…

代碼隨想錄第40天|動態規劃

完全背包 完全背包物品可以無限使用 01背包核心代碼 01背包中的二維dp數組的兩個for遍歷可顛倒, 而一維dp數組的一定先遍歷物品再遍歷背包容量狀態轉移方程(背包容量一定為遞減) 完全背包核心代碼 (只在完全背包中一維dp數組嵌套順序可顛倒, 實際題目需要確定遍歷順序) 狀…

【高考志愿】建筑學

目錄 一、專業介紹 1.1 專業定義 1.2 專業培養目標 1.3 核心課程 二、就業方向和前景 2.1 就業方向 2.2 專業前景 三、報考注意 四、行業趨勢與未來展望 五、建筑學專業排名 一、專業介紹 1.1 專業定義 建筑學,這一充滿藝術與科技魅力的學科,…

天線 有源 無源 參數

無源測試駐波比VSWR/回波損耗(Return Loss)≤2效率≥50%輸入阻抗50R10%增益天線方向圖3D場強圖方向性 有源測試 OTA 傳導測試:發射功率傳導測試:接收靈敏度總輻射功率TRP(Total Radiated Power)≥發射功率減3dB總接收靈敏度TIS(Total Isotrop…

JDBC1(JDBC相關類與接口 ?連接mysql數據庫? 測試 不同數據庫廠商實現-MySQL和Oracle)

目錄 一、JDBC 1. JDBC相關類與接口 1.1 DriverManager 1.2 Connection 1.3 Statement 4.ResultSet 2. JDBC工作原理 二、連接mysql數據庫 1. 導入jar包 2. 使用DriverManager加載驅動類 3. Connection接口 4. Statement接口 5. ResultSet接口 ?編輯 6. 關閉并…

顯卡簡介

顯卡是計算機系統中一個重要的組成部分,它負責處理圖形和視頻輸出。顯卡的性能直接影響到計算機的圖形處理能力,因此在游戲、視頻編輯、3D渲染等需要高性能圖形處理的應用中,顯卡的選擇至關重要。本文將從顯卡的基本概念、性能指標、市場現狀…

【Node.JS】入門

文章目錄 Node.js的入門涉及對其基本概念、特點、安裝、以及基本使用方法的了解。以下是對Node.js入門的詳細介紹: 一、Node.js基本概念和特點 定義:Node.js是一個基于Chrome V8引擎的JavaScript運行環境,它使得JavaScript能夠運行在服務器…

【鴻蒙學習筆記】基礎組件Progress:進度條組件

官方文檔:Progress 目錄標題 作用最全屬性迭代追加進度賦值風格樣式 作用 進度條組件 最全屬性迭代追加 Progress({ value: 20, total: 100, type: ProgressType.Linear }).color(Color.Green)// 顏色.width(200)// 大小.height(50)// 高度.value(50)// 進度可更…