C 11中的Tuple和可變引數模版

2021-06-28 18:30:56 字數 628 閱讀 6243

c++11中的tuple是乙個n元的可變元組,它相當於有n個元素的結構體,只不過這個結構體的成員都是匿名的,tuple中提供了乙個get()方法來獲取某個下標對應的元素的值。另外可以通過make_tuple()方法來構造乙個tuple物件。具體用法如下

我們知道tuple中的元素個數是不確定的,而每個元素的型別通過模板引數指定,那麼tuple是如何做到這些的呢?答案就是使用可變引數模板。在c++中,我們使用過printf函式,它的引數就是可變的,在c++11中也允許模板的引數也是可變的。舉個例子,下面的**是求引數的個數

好了,到了這裡,mayuyu再來實現乙個print函式,表示輸出可變引數列表的所有值。如下

更多資料:請戳這裡

c 11中的tuple(元組)

這次要講的內容是 c 11中的tuple 元組 tuple看似簡單,其實它是簡約而不簡單,可以說它是c 11中乙個既簡單又複雜的東東,關於它簡單的一面是它很容易使用,複雜的一面是它內部隱藏了太多細節,要揭開它神秘的面紗時又比較困難。tuple是乙個固定大小的不同型別值的集合,是泛化的std pair...

C 11可變引數函式模板

在log時引數是型別和個數是不固定的,所以在做log函式時,很多煩惱,不過c 11給我們帶來的希望 include include using namespace std class logger static void makeloggeroff static bool loggerstate t...

c 11 之可變引數模板

目的 包含0到任意個模板引數 宣告可變引數模板需要在typename或class 後面加上省略號 一 可變引數模板函式 template void f t.args cout 可變引數展開有兩種方式 1.通過遞迴的模板函式來將引數展開 2.通過逗號表示式和初始化列表方式展開引數包 對於1介紹一種通過...