1.8 tupe元組
構造tuple
//標頭檔案為: 使用make_tuple 構造乙個tuple
char* sendpack;
int nsendsize;
tuple
char*, int> tp = make_tuple(sendpack, nsendsize);
//使用std::tie構造
tuple
char*, int> tp1 = std::tie(sendpack, nsendsize);
//這個tuple和下面的結構體等價
struct tp
用tuple就可以建立這個結構體,而作用是一樣的。
獲取tuple的值
const
char* data = std::get
<0>(tp);//獲取上第乙個值
int len = std::get
<1>(tp);//獲取第二個值
也可以通過std::tie解包tuple
std::string str;
intlen;
std::tie(str,len) = tp;
解包時,我們如果只想解某個位置的值時,可以用std::ignore佔位符來表示不解某個位置的值
std:
:tie(str,std:
:ignore) = tp;
通過tuple_cat連線多個tuple(c++ 14 !!!)
std::tuple t1(10, "test", 3.14);
int n = 7;
auto t2 = std::tuple_cat(t1, std::make_pair("foo", "bar"), t1, std::tie(n));
n = 10;
//t2:(10, test, 3.14, foo, bar, 10, test, 3.14, 10)
遍歷tuple(詳見cppreference)
#include
#include
#include
// helper function to print a tuple of any size
template
struct tupleprinter
};template
struct tupleprinter1>
};template
void print(const
std::tuple& t)
// end helper function
int main()
//(10, test, 3.14, foo, bar, 10, test, 3.14, 10)
c++11 的標準規定,函式可以返回花括號包圍的值的列表。
深入應用C 11 筆記 非同步操作 (九)
c 11 提供了非同步操作相關的類 std future作為非同步結果的傳輸通道,用於獲取執行緒函式的的返回值 std promise用於包裝乙個值,將資料和future繫結起來,方便執行緒賦值 std package task將函式和future繫結起來,以便非同步呼叫。1.1 獲取執行緒函式返回...
深入理解C 11 筆記
include using namespace std classa a 對於含有堆記憶體的類,需要提供深拷貝的拷貝建構函式,避免預設的拷貝構造使用淺拷貝導致堆記憶體的重複刪除。a const a a m ptr new int a.m ptr 通過移動構造,a 作為函式引數,只使用淺拷貝避免臨時物...
c 11 筆記,c 筆記
find if的使用 bool isthe const string s1 vectora auto aaa find if a.begin a.end isthe aaa為第乙個符合要求的位址。aaa為取到的值。aaa為迭代器 lambda 表示式 auto f cout auto aaa fin...