C 11新特性學習

2021-06-27 09:30:31 字數 562 閱讀 9708

lambda表示式用於建立匿名的函式物件,語法為:

[函式可訪問的的外部變數] (函式引數) -> 返回值型別

如:int a = 1, b = 2;

int c = [b](int&x) -> int );

[b]表示函式中可以訪問外部變數b,而且引數b是按值傳遞,[&b]表示引數b是按引用傳遞,[=]表示可以訪問所有外部變數,並且是用按值傳遞方式,類似,[&]也表示可以訪問所有外部變數,不過是用按引用傳遞方式。

另外,

[=,&a,&b]表示函式中除了a和b是按引用傳遞訪問,其他引數都是按值傳遞訪問。

[a, &b]表示a是按值訪問,b是按引用訪問。

c++11使得變數的初始化更加方便,特別是容器變數,

如:int a[2];

vectorvec;

mapm,};

string str;

C 11 新特性 nullptr 學習

nullptr 出現的目的是為了替代 null。在某種意義上來說,傳統 c 會把 null 0 視為同一種東西,這取決於編譯器如何定義 null,有些編譯器會將 null 定義為 void 0 有些則會直接將其定義為 0。c 不允許直接將 void 隱式轉換到其他型別,但如果 null 被定義為 v...

c 11 新特性學習(1)

1.原始字面量 在 c 11 中新增了定義原始字串的字面量,定義方式為 r 原始字串 其中 兩邊的字串可以省略。原始字面量 r 可以直接表示字串的實際含義,而不需要額外對字串做轉義或連線等操作。如 n t縮排這種 比如 程式設計過程中,使用的字串中常帶有一些特殊字元,對於這些字元往往要做專門的處理,...

C 11 新特性試用

在c 11之前,auto關鍵字用來指定儲存期。在新標準中,它的功能變為型別推斷。auto現在成了乙個型別的佔位符,通知編譯器去根據初始化 推斷所宣告變數的真實型別。各種作用域內宣告變數都可以用到它。例如,名空間中,程式塊中,或是for迴圈的初始化語句中。auto i 42 i is an int a...