91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++11中新特性std::make_tuple的使用方法

發布時間:2020-10-29 23:33:23 來源:億速云 閱讀:551 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關C++11中新特性std::make_tuple的使用方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

std::tuple是C++ 11中引入的一個非常有用的結構,以前我們要返回一個包含不同數據類型的返回值,一般都需要自定義一個結構體或者通過函數的參數來返回,現在std::tuple就可以幫我們搞定。

1.引用頭文件

#include <tuple>

2. Tuple初始化

std::tuple的初始化可以通過構造函數實現。

// Creating and Initializing a tuple
std::tuple<int, double, std::string> result1 { 22, 19.28, "text" };

這種初始化方式要定義各個元素的數據類型,比較繁瑣,C++11也提供了另外一種方式std::make_tuple。

3. std::make_tuple

// Creating a tuple using std::make_tuple
auto result2 = std::make_tuple( 7, 9.8, "text" );

這種初始化方式避免需要逐個指定元素類型的問題,自動化實現各個元素類型的推導。

完整例子一:

#include <iostream>
#include <tuple>
#include <string>

int main()
{
  // Creating and Initializing a tuple
  std::tuple<int, double, std::string> result1 { 22, 19.28, "text" };
  // Compile error, as no way to deduce the types of elements in tuple
  //auto result { 22, 19.28, "text" }; // Compile error
  // Creating a tuple using std::make_tuple
  auto result2 = std::make_tuple( 7, 9.8, "text" );
  // std::make_tuple automatically deduced the type and created tuple
  // Print values
  std::cout << "int value = " << std::get < 0 > (result2) << std::endl;
  std::cout << "double value = " << std::get < 1 > (result2) << std::endl;
  std::cout << "string value = " << std::get < 2 > (result2) << std::endl;
  return 0;
}

輸出:

<strong>int</strong> value = 7

<strong>double</strong> value = 9.8

string value = text

完整例子二:

#include <iostream>
#include <tuple>
#include <functional>
 
std::tuple<int, int> f() // this function returns multiple values
{
  int x = 5;
  return std::make_tuple(x, 7); // return {x,7}; in C++17
}
 
int main()
{
  // heterogeneous tuple construction
  int n = 1;
  auto t = std::make_tuple(10, "Test", 3.14, std::ref(n), n);
  n = 7;
  std::cout << "The value of t is " << "("
       << std::get<0>(t) << ", " << std::get<1>(t) << ", "
       << std::get<2>(t) << ", " << std::get<3>(t) << ", "
       << std::get<4>(t) << ")\n";
 
  // function returning multiple values
  int a, b;
  std::tie(a, b) = f();
  std::cout << a << " " << b << "\n";
}

輸出:

The value of t is (10, Test, 3.14, 7, 1)

5 7

以上就是C++11中新特性std::make_tuple的使用方法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余干县| 宜春市| 宜川县| 阜南县| 芦山县| 津市市| 武胜县| 卫辉市| 新乐市| 沙坪坝区| 龙岩市| 游戏| 双柏县| 城市| 七台河市| 临沧市| 涞水县| 宁远县| 洪雅县| 贞丰县| 杂多县| 民和| 萍乡市| 宜宾市| 顺义区| 馆陶县| 武川县| 诸暨市| 砀山县| 南投市| 伊宁市| 同仁县| 桂平市| 英超| 双流县| 绵阳市| 沙河市| 澎湖县| 精河县| 新蔡县| 沈丘县|