C++ 學習筆記(Structured bindings)

C++ 學習筆記(Structured bindings)

這個特性是 C++17 引入的,個人認為主要是解決如何讓函數返回多個值的問題。在這之前,我們一般用 std::pair 或者 std::tuple 來返回多個值。比如下面的例子:

std::tuple<int, int ,int > test()
{return std::make_tuple(1,2,3);
}std::pair<int, double> test2()
{return std::make_pair(12, 12.222);
}int a1, a2, a3;double b1;std::tie(a1, a2, a3) = test();qDebug() << "a1 = " << a1 << ",a2 = " << a2 <<", a3 = " << a3;std::tie(a1, b1) = test2();qDebug() << "a1 = " << a1 << ",b1 = " << b1;

在上面的例子中,我們先定義了一些變量,然后用 std::tie 把他們綁定成一個 std::tuple,這樣就可以獲取多個值了。

在C++ 17 中,把這個特性更近了一步。例如下面的例子:

    auto [aa1, aa2, aa3] = test();qDebug() << "aa1 = " << aa1 << ",aa2 = " << aa2 <<", aa3 = " << aa3;

另外,C++ 17 還擴充了 if 和 swtich 的語法,可以像下面這樣:

    if(auto [aa1, aa2, aa3] = test(); aa2 == 2){qDebug() << "aa1 = " << aa1 << ",aa2 = " << aa2 <<", aa3 = " << aa3;}switch (auto [aa1, aa2, aa3] = test(); aa2 ) {case 1:qDebug() << "1";break;case 2:qDebug() << "2";break;default:break;}

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

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

相關文章

網盤拉新項目去哪找平臺對接?推薦6個一手渠道接單!

在當今這個充滿競爭的時代&#xff0c;網盤項目的尋找與對接成為了許多團隊關注的焦點。那么&#xff0c;我們應該如何找到那些既靠譜又有潛力的項目呢&#xff1f;經過深入研究和全網檢索&#xff0c;我為大家盤點了6個值得一試的接單渠道&#xff0c;助力網盤推廣團隊高效尋找…

matlab工具包

matlab安裝yalmip和cplex出錯 - 知乎 (zhihu.com) Cplex的安裝和使用實例-CSDN博客 一條龍教程&#xff1a;Matlab下使用yalmip(工具箱)cplex&#xff08;求解器&#xff09;_使用yalmip和cplex求解器進行建模和求解的步驟如下:-CSDN博客 啊啊啊&#xff0c;好開心&#xff…

Mint_21.3 drawing-area和goocanvas的FB筆記(二)

一、goocanvas安裝 Linux mint 21.3 庫中帶有 libgoocanvas-2.0-dev, 用sudo apt install libgoocanvas-2.0-dev 安裝&#xff0c;安裝完成后&#xff0c;檢查一個 /usr/lib/x86_64-linux-gnu 下是否有libgoocanvas.so的軟件鏈接。如果沒有&#xff0c;或是 .so.x 等類似后面…

事務Transaction簡寫為tx的原因

版權聲明 本文原創作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Transaction簡寫的由來 數據庫事務Transaction通常被簡寫為tx。讓人疑惑的是&#xff1a;這個單詞本身沒有字母x為何又將其簡寫成了tx呢&#xff1f; 第一種可能 Transac…

SpringBoot整合ActiveMQ步驟

SpringBoot整合ActiveMQ主要涉及以下幾個步驟&#xff1a; 添加依賴&#xff1a;在SpringBoot項目的pom.xml文件中添加ActiveMQ的依賴。 <dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-spring</artifactId><ver…

“平民化”非結構數據處理

在全球信息產業高速發展的背景下&#xff0c;IDC預測&#xff0c;2018 到 2025 年之間&#xff0c;全球產生的數據量將會從 33 ZB 增長到 175 ZB&#xff0c; 復合增長率27%&#xff0c;其中超過 80%的數據都會是處理難度較大的非結構化數據&#xff0c;如文檔、文本、圖形、圖…

搜索題解

單詞方陣 - 洛谷 思路&#xff1a;在字符方陣中找到y并將其坐標存入數組&#xff0c;再找其八個方向是否有目標字符&#xff0c;有的話就深搜一個方向&#xff0c;能搜完就將數組標記&#xff0c;最好標記的就輸入字符&#xff0c;沒標記的就輸出*。 代碼如下&#xff1a; #…

linux 拷貝文件到指定目錄 命令

在 Linux 中&#xff0c;使用 cp 命令可以拷貝文件到指定目錄。下面是 cp 命令的基本用法&#xff1a; bash cp [選項] 源文件 目標目錄 - 選項&#xff1a;可以是一些附加的選項&#xff0c;例如 -r 表示遞歸拷貝&#xff08;用于復制目錄&#xff09;。 - 源文件&#xff1a…

javascript中的class基礎入門(1)

javascript中的class start 最近在學習&#xff1a;cocos &#xff0c;準備自己制作小游戲。過程中遇到不少疑問&#xff0c;我計劃將這些疑問寫成一個系列博客&#xff0c;用以記錄。這篇文章來了解 class 1. 前言 1. 前言 本文對應版本 Cocos Creator 3.8。Cocos Creato…

【Sql server】假設有三個字段a,b,c 以a和b分組,如何查詢a和b唯一,但是c不同的記錄

歡迎來到《小5講堂》&#xff0c;大家好&#xff0c;我是全棧小5。 這是《Sql Server》系列文章&#xff0c;每篇文章將以博主理解的角度展開講解&#xff0c; 特別是針對知識點的概念進行敘說&#xff0c;大部分文章將會對這些概念進行實際例子驗證&#xff0c;以此達到加深對…

2_SQL

文章目錄 SQL數據完整性實體完整性域完整性參照完整性default&#xff08;默認值&#xff09;comment&#xff08;注釋&#xff09; 多表設計一對一一對多多對多數據庫三大范式第一范式&#xff1a;原子性第二范式&#xff1a;唯一性第三范式&#xff1a;數據的冗余 多表查詢連…

JQMobile Loader Widget 遮罩層改造

最近在用jqmobile 做一個混合APP項目時候用到 jqmobile1.4.3提供的Loader Widget控件,但是這個控件本身是一個loading彈出層,這個彈出層彈出之后,用戶還是可以去點擊按鈕,重復發送請求,為了防止重復提交,我想了兩種辦法, 1,在loading彈出層彈出之后,讓按鈕不可用.但是form表單…

記錄SSM項目集成Spring Security 4.X版本 之 加密驗證和記住我功能

目錄 前言 一、用戶登錄密碼加密認證 二、記住我功能 前言 本次筆記的記錄是接SSM項目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架實現登錄和主頁菜單顯示-CSDN博客https://blog.csdn.net/u011529483/article/details/136255768?spm1001.2014.3001.5502 文章之后補…

Python列表的合并、重復、判斷與切片操作你學會了嗎

1.合并列表 通過 實現 list1 ["佛跳墻", "腸粉", "刀削面", "烤鴨"]list2 [32, 4, 5, 7.43, True]list3 list1 list2print(list3) # [佛跳墻, 腸粉, 刀削面, 烤鴨, 32, 4, 5, 7.43, True] 2.重復輸出列表中的元素 通過 * 實…

fastadmin 前端日期字段的添加和編輯

引言 fastadmin 項目中如果需要用到datetime字段的維護&#xff0c;可做如下處理&#xff1a; 1. add.html <div class"form-group"><label class"control-label col-xs-12 col-sm-2">{:__(開始)}:</label><div class"col-x…

vue3 中 主題定制

vue3 中 主題定制 背景 做多主題定制&#xff0c;黑/白 &#xff0c;里面還要再分各種顏色&#xff0c;每次進來都要記住上次的主題設置 效果圖 一、目錄結構 ├── generated │ ├── theme │ │ └── dark-yellow.ts │ │ └── dark-orange.ts │ │…

C++考試成績統計(類實現)

題目&#xff1a;有三名同學&#xff0c;在一次考試中三科成績分別如下表&#xff0c;請輸出三名同學的平均成績&#xff1a; 語文數學英語張三100100100李四9050100王五607080 #include <iostream> #include <string> /*考試成績統計*/ using namespace std;cla…

力扣:120. 三角形最小路徑和

動態規劃 1.先定義dp數組在下標i和下標j時的最小路徑和 &#xff0c;之后初始化dp數組值dp【0】【0】triangle.get(0).get(0)。再用for循環來遍歷數組dp【】的i&#xff0c;并賦值每行的下標為0的dp數組。之后再用for循環遍歷dp【i】【】的j&#xff0c;遞推公式來計算dp【i】…

「算法」常見位運算總結

位運算符 異或 按位異或可以實現無進位相加&#xff0c;所謂無進位相加&#xff0c;就是在不考慮進位的情況下將兩個數相加&#xff08;后面有道題需要用到這種操作&#xff09; 異或的運算律 ①a ^ 0 a ②a ^ a 0 ③a ^ b ^ c a ^ ( b ^ c ) 有符號右移>> 將一個…

IDEA切換 Springboot初始化 URL

&#x1f339;作者主頁&#xff1a;青花鎖 &#x1f339;簡介&#xff1a;Java領域優質創作者&#x1f3c6;、Java微服務架構公號作者&#x1f604; &#x1f339;簡歷模板、學習資料、面試題庫、技術互助 &#x1f339;文末獲取聯系方式 &#x1f4dd; 往期熱門專欄回顧 專欄…