精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

30分鐘了解C++11新特性

開(kāi)發(fā) 后端 開(kāi)發(fā)工具
本文將對(duì)C++11的以上新特性進(jìn)行簡(jiǎn)單的講解,以便大家能夠快速了解到C++11對(duì)C++的易用性方面祈禱的巨大作用。

什么是C++11

C++11是曾經(jīng)被叫做C++0x,是對(duì)目前C++語(yǔ)言的擴(kuò)展和修正,C++11不僅包含核心語(yǔ)言的新機(jī)能,而且擴(kuò)展了C++的標(biāo)準(zhǔn)程序庫(kù)(STL),并入了大部分的C++ Technical Report 1(TR1)程序庫(kù)(數(shù)學(xué)的特殊函數(shù)除外)。

C++11包括大量的新特性:包括lambda表達(dá)式,類(lèi)型推導(dǎo)關(guān)鍵字auto、decltype,和模板的大量改進(jìn)。

本文將對(duì)C++11的以上新特性進(jìn)行簡(jiǎn)單的講解,以便大家能夠快速了解到C++11對(duì)C++的易用性方面祈禱的巨大作用。

如果您覺(jué)得本文的排版不是很舒服,可以查看我的PDF文檔:百度盤(pán)鏈接

 

新的關(guān)鍵字

 

auto

C++11中引入auto***種作用是為了自動(dòng)類(lèi)型推導(dǎo)

auto的自動(dòng)類(lèi)型推導(dǎo),用于從初始化表達(dá)式中推斷出變量的數(shù)據(jù)類(lèi)型。通過(guò)auto的自動(dòng)類(lèi)型推導(dǎo),可以大大簡(jiǎn)化我們的編程工作

auto實(shí)際上實(shí)在編譯時(shí)對(duì)變量進(jìn)行了類(lèi)型推導(dǎo),所以不會(huì)對(duì)程序的運(yùn)行效率造成不良影響

另外,似乎auto并不會(huì)影響編譯速度,因?yàn)榫幾g時(shí)本來(lái)也要右側(cè)推導(dǎo)然后判斷與左側(cè)是否匹配。

  1. auto a; // 錯(cuò)誤,auto是通過(guò)初始化表達(dá)式進(jìn)行類(lèi)型推導(dǎo),如果沒(méi)有初始化表達(dá)式,就無(wú)法確定a的類(lèi)型  
  2. auto i = 1;  
  3. auto d = 1.0;  
  4. auto str = "Hello World";  
  5. auto ch = 'A';  
  6. auto func = less<int>();  
  7. vector<int> iv;  
  8. auto ite = iv.begin();  
  9. auto p = new foo() // 對(duì)自定義類(lèi)型進(jìn)行類(lèi)型推導(dǎo) 

auto不光有以上的應(yīng)用,它在模板中也是大顯身手,比如下例這個(gè)加工產(chǎn)品的例子中,如果不使用auto就必須聲明Product這一模板參數(shù):

  1. template <typename Product, typename Creator>  
  2. void processProduct(const Creator& creator) {  
  3.     Product* val = creator.makeObject();  
  4.     // do somthing with val  
  5. }         
  6.         . 

如果使用auto,則可以這樣寫(xiě):

  1. template <typename Creator>  
  2. void processProduct(const Creator& creator) {  
  3.     auto val = creator.makeObject();  
  4.     // do somthing with val  

拋棄了麻煩的模板參數(shù),整個(gè)代碼變得更加正解了。

 

decltype

decltype實(shí)際上有點(diǎn)像auto的反函數(shù),auto可以讓你聲明一個(gè)變量,而decltype則可以從一個(gè)變量或表達(dá)式中得到類(lèi)型,有實(shí)例如下:

  1. int x = 3;  
  2. decltype(x) y = x; 

有人會(huì)問(wèn),decltype的實(shí)用之處在哪里呢,我們接著上邊的例子繼續(xù)說(shuō)下去,如果上文中的加工產(chǎn)品的例子中我們想把產(chǎn)品作為返回值該怎么辦呢?我們可以這樣寫(xiě):

  1. template <typename Creator>  
  2. auto processProduct(const Creator& creator) -> decltype(creator.makeObject()) {  
  3.     auto val = creator.makeObject();  
  4.     // do somthing with val  

nullptr

nullptr是為了解決原來(lái)C++中NULL的二義性問(wèn)題而引進(jìn)的一種新的類(lèi)型,因?yàn)镹ULL實(shí)際上代表的是0,

  1. void F(int a){  
  2.     cout<<a<<endl;  
  3. }  
  4.  
  5. void F(int *p){  
  6.     assert(p != NULL);  
  7.  
  8.     cout<< p <<endl;  
  9. }  
  10.  
  11. int main(){  
  12.  
  13.     int *p = nullptr;  
  14.     int *q = NULL;  
  15.     bool equal = ( p == q ); // equal的值為true,說(shuō)明p和q都是空指針  
  16.     int a = nullptr; // 編譯失敗,nullptr不能轉(zhuǎn)型為int  
  17.     F(0); // 在C++98中編譯失敗,有二義性;在C++11中調(diào)用F(int)  
  18.     F(nullptr);  
  19.  
  20.     return 0;  

序列for循環(huán)

在C++中for循環(huán)可以使用類(lèi)似java的簡(jiǎn)化的for循環(huán),可以用于遍歷數(shù)組,容器,string以及由begin和end函數(shù)定義的序列(即有Iterator),示例代碼如下:

  1. map<string, int> m{{"a", 1}, {"b", 2}, {"c", 3}};  
  2. for (auto p : m){  
  3.     cout<<p.first<<" : "<<p.second<<endl;  

Lambda表達(dá)式

lambda表達(dá)式類(lèi)似Javascript中的閉包,它可以用于創(chuàng)建并定義匿名的函數(shù)對(duì)象,以簡(jiǎn)化編程工作。Lambda的語(yǔ)法如下:

[函數(shù)對(duì)象參數(shù)](操作符重載函數(shù)參數(shù))->返回值類(lèi)型{函數(shù)體}

  1. vector<int> iv{5, 4, 3, 2, 1};  
  2. int a = 2, b = 1;  
  3.  
  4. for_each(iv.begin(), iv.end(), [b](int &x){cout<<(x + b)<<endl;}); // (1)  
  5.  
  6. for_each(iv.begin(), iv.end(), [=](int &x){x *= (a + b);});     // (2)  
  7.  
  8. for_each(iv.begin(), iv.end(), [=](int &x)->int{return x * (a + b);});// (3) 
  • []內(nèi)的參數(shù)指的是Lambda表達(dá)式可以取得的全局變量。(1)函數(shù)中的b就是指函數(shù)可以得到在Lambda表達(dá)式外的全局變量,如果在[]中傳入=的話(huà),即是可以取得所有的外部變量,如(2)和(3)Lambda表達(dá)式
  • ()內(nèi)的參數(shù)是每次調(diào)用函數(shù)時(shí)傳入的參數(shù)
  • ->后加上的是Lambda表達(dá)式返回值的類(lèi)型,如(3)中返回了一個(gè)int類(lèi)型的變量

 

變長(zhǎng)參數(shù)的模板

我們?cè)贑++中都用過(guò)pair,pair可以使用make_pair構(gòu)造,構(gòu)造一個(gè)包含兩種不同類(lèi)型的數(shù)據(jù)的容器。比如,如下代碼:

  1. auto p = make_pair(1, "C++ 11"); 

由于在C++11中引入了變長(zhǎng)參數(shù)模板,所以發(fā)明了新的數(shù)據(jù)類(lèi)型:tuple,tuple是一個(gè)N元組,可以傳入1個(gè), 2個(gè)甚至多個(gè)不同類(lèi)型的數(shù)據(jù)

  1. auto t1 = make_tuple(1, 2.0, "C++ 11");  
  2. auto t2 = make_tuple(1, 2.0, "C++ 11", {1, 0, 2}); 

這樣就避免了從前的pair中嵌套pair的丑陋做法,使得代碼更加整潔

另一個(gè)經(jīng)常見(jiàn)到的例子是Print函數(shù),在C語(yǔ)言中printf可以傳入多個(gè)參數(shù),在C++11中,我們可以用變長(zhǎng)參數(shù)模板實(shí)現(xiàn)更簡(jiǎn)潔的Print

  1. template<typename head, typename... tail>  
  2. void Print(Head head, typename... tail) {  
  3.     cout<< head <<endl;  
  4.     Print(tail...);  

Print中可以傳入多個(gè)不同種類(lèi)的參數(shù),如下:

  1. Print(1, 1.0, "C++11"); 

更加優(yōu)雅的初始化方法

在引入C++11之前,只有數(shù)組能使用初始化列表,其他容器想要使用初始化列表,只能用以下方法:

  1. int arr[3] = {1, 2, 3}  
  2. vector<int> v(arr, arr + 3); 

在C++11中,我們可以使用以下語(yǔ)法來(lái)進(jìn)行替換:

  1. int arr[3]{1, 2, 3};  
  2. vector<int> iv{1, 2, 3};  
  3. map<int, string>{{1, "a"}, {2, "b"}};  
  4. string str{"Hello World"}; 

然后呢…

如果你想了解更多C++11令人興奮的新特性,我會(huì)向你推薦這兩個(gè)博客:

胡健的C++11系列博文

ToWrting的C++11系列博文

C++11的編譯器支持列表

原文鏈接:http://my.oschina.net/wangxuanyihaha/blog/183151

 

責(zé)任編輯:林師授 來(lái)源: 王選易博客
相關(guān)推薦

2024-02-01 13:05:00

C++11C++編程

2012-12-25 10:52:23

IBMdW

2017-01-10 09:07:53

tcpdumpGET請(qǐng)求

2021-06-06 13:08:22

C#特性Attribute

2009-11-05 10:55:22

Visual Stud

2025-07-10 07:42:12

2013-05-03 10:57:09

泛型泛型教程

2025-06-04 08:50:00

LambdaC++編程

2018-09-30 14:20:03

編程語(yǔ)言Java新特性

2025-06-23 02:00:00

2025-05-22 08:10:00

C++條件變量編程

2020-05-22 10:20:27

Shiro架構(gòu)字符串

2018-05-06 16:26:03

關(guān)聯(lián)規(guī)則數(shù)據(jù)分析關(guān)聯(lián)規(guī)則推薦

2018-03-12 21:31:24

區(qū)塊鏈

2009-11-05 14:53:54

Visual Stud

2021-10-19 07:27:08

HTTP代理網(wǎng)絡(luò)

2020-07-27 10:40:35

C++11語(yǔ)言代碼

2023-09-07 23:52:50

Flink代碼

2022-12-16 09:55:50

網(wǎng)絡(luò)架構(gòu)OSI

2020-10-13 18:22:58

DevOps工具開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

夜夜爽夜夜爽精品视频| 一个色综合网| 色88888久久久久久影院按摩| 国产一区二区三区四区五区在线| 亚洲av中文无码乱人伦在线视色| 伊人精品综合| 91极品美女在线| 中文字幕一区二区三区最新| 午夜精品久久久久久久91蜜桃| 亚洲精品麻豆| 中文字幕亚洲一区| 麻豆免费在线观看视频| 竹内纱里奈兽皇系列在线观看| 中文字幕巨乱亚洲| 国产精品三区www17con| 中文字幕欧美在线观看| 狠色狠色综合久久| 中文字幕亚洲一区在线观看| 岛国av免费观看| 伦一区二区三区中文字幕v亚洲| 亚洲高清在线精品| 99亚洲精品视频| 免费动漫网站在线观看| 国产成人在线观看| 国产精品一区二区久久久久| 国产无遮挡aaa片爽爽| 91一区二区| 亚洲欧美综合精品久久成人| 韩国av中国字幕| 色狠狠一区二区三区| 黑人与娇小精品av专区| 久久这里只有精品18| 麻豆免费在线视频| 亚洲国产精品精华液ab| 欧美极品色图| 视频一区 中文字幕| 中文字幕在线有码| 综合成人在线| 欧美一区二区三区免费在线看| 99精品视频在线看| sm久久捆绑调教精品一区| 亚洲精品国产无套在线观| 色狠狠久久av五月综合|| 女人偷人在线视频| 97精品久久久午夜一区二区三区| 91视频婷婷| 国产三级三级在线观看| 精品一区二区综合| 国产精品一区二区在线| 最新国产中文字幕| 日韩不卡免费视频| 国产成人综合亚洲| www.久久精品视频| 久久精品主播| 日本aⅴ大伊香蕉精品视频| 国产精品一区二区6| 在线精品在线| 69国产精品成人在线播放| 黄色小视频在线免费看| 国内揄拍国内精品久久| 久久青草福利网站| 日韩av电影网址| 国产精品五区| 日本精品久久久| 一级片免费在线播放| 日韩精品视频网站| 国产精品 欧美在线| 毛片在线免费播放| 捆绑调教美女网站视频一区| 国产欧美精品一区二区三区介绍 | 亚洲奶汁xxxx哺乳期| 国产成人在线色| 国产日韩久久| 国产福利第一视频在线播放| 国产精品婷婷午夜在线观看| 影音先锋欧美在线| 国产嫩草在线视频| 欧美日韩午夜视频在线观看| 99久久国产宗和精品1上映| 精品欧美一区二区三区在线观看| 欧美揉bbbbb揉bbbbb| av中文字幕网址| 超碰成人97| 亚洲视屏在线播放| 欧美第一页在线观看| 激情综合亚洲| 日本中文字幕成人| 国产又黄又爽视频| av毛片久久久久**hd| 欧美在线视频一区二区三区| 日本综合在线| 婷婷中文字幕综合| 天美星空大象mv在线观看视频| 日韩久久99| 欧美tickling网站挠脚心| 久久久无码人妻精品一区| 91麻豆国产自产在线观看亚洲| 超碰精品一区二区三区乱码| 久久一区二区三区视频| 美女视频黄 久久| 国产精品乱码一区二区三区| 国产乱理伦片a级在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲男同1069视频| 欧美亚洲国产成人| 99久久99九九99九九九| 日韩理论片久久| 国产大学生自拍| 日韩精品91亚洲二区在线观看| 99久久99| 在线免费黄色| 精品久久久久久久久久国产| 婷婷激情5月天| 一本色道久久综合狠狠躁的番外| 久久综合免费视频影院| 无码人妻精品一区二区三区蜜桃91| 精品一区二区免费| 欧美裸体网站| 不卡的av影片| 日韩精品中文字幕一区二区三区| 性猛交ⅹxxx富婆video| 亚洲午夜视频| 51国偷自产一区二区三区的来源 | 亚洲图片小说视频| 91亚洲男人天堂| 国产片侵犯亲女视频播放| 久久久免费人体| 亚洲美女在线看| 日本三级免费看| 国产成人av电影在线观看| 亚洲 日韩 国产第一区| 日韩欧美少妇| 亚洲男人的天堂在线播放| 国产精品999久久久| 国产乱一区二区| 一区二区不卡视频| 99久久久国产精品免费调教网站| 亚洲男人天堂2024| 国产免费av一区| 99热精品国产| 精品少妇人妻av免费久久洗澡| 日韩欧美另类中文字幕| 精品国产自在精品国产浪潮 | 女人高潮被爽到呻吟在线观看 | 久久久久99人妻一区二区三区 | av高清在线免费观看| 亚洲日本va午夜在线电影| 精品国产一区久久久| 国产乱淫a∨片免费观看| 中文字幕亚洲在| 日本人69视频| 99久久婷婷这里只有精品| 国产精品日韩一区| a中文在线播放| 欧美日韩国产综合一区二区三区 | 国产精品极品美女在线观看免费 | 一区二区久久精品66国产精品| 国产欧美1区2区3区| 在线观看的毛片| 久久国产成人精品| 成人黄色网免费| 国产最新在线| 精品国产乱码久久久久久1区2区 | 在线播放毛片| 91.com视频| 九九视频在线观看| 成人免费视频app| 免费成人在线视频网站| 久久不见久久见国语| 国产精品电影观看| 黄色网址在线免费| 欧美成人video| www.av麻豆| 久久精品视频网| 亚洲三级在线观看视频| 欧美在线亚洲| 久久66热这里只有精品| 欧美舌奴丨vk视频| 久久精品国产欧美激情| 免费看黄色一级视频| 欧美视频中文字幕在线| 亚洲码无人客一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线观看视频黄色| 欧美日韩一区二区三区在线电影 | 午夜dv内射一区二区| 久久久久久久久久久妇女| 国产精品9999久久久久仙踪林| 中文在线资源| 久久夜色精品国产| 亚洲人成色777777精品音频| 欧美另类变人与禽xxxxx| 久久97人妻无码一区二区三区| 91在线观看视频| 中文字幕第17页| 亚洲精品婷婷| 中文字幕av日韩精品| 国产福利一区二区精品秒拍| 国产精品日韩欧美综合| 黄色在线观看www| 日韩一区二区三区国产| 日韩一级片免费| 在线观看91精品国产麻豆| 毛片视频网站在线观看| 亚洲欧洲日韩综合一区二区| 国产精品久久久久久亚洲色| 蜜臀久久99精品久久久画质超高清 | 激情综合久久| 最新精品视频| 久久99久久人婷婷精品综合| 国产91色在线|亚洲| 久久久久久久性潮| 日本亚洲精品在线观看| 毛片在线网址| 精品国偷自产在线| 国产乱子伦三级在线播放| 亚洲国产精品成人va在线观看| 国产精品无码在线播放| 色哦色哦哦色天天综合| 日韩免费一级片| 一二三四区精品视频| 国产黄色片在线| 国产欧美一区二区精品久导航| 亚洲自拍偷拍精品| 国产成人午夜精品5599 | 成人一区二区在线观看| 天堂av2020| 蜜桃av一区二区在线观看 | 国产在线精品不卡| 中文字幕第80页| 欧美综合国产| 9久久9毛片又大又硬又粗| 韩国一区二区三区在线观看| 水蜜桃在线免费观看| 99久久婷婷国产综合精品电影√| 日韩一区不卡| 精品日韩免费| 午夜欧美一区二区三区免费观看| 亚洲精品亚洲人成在线观看| 久久精品综合一区| 精品视频高潮| 精品蜜桃一区二区三区| 久久精品国产亚洲blacked| 成人av资源网| 高潮按摩久久久久久av免费| 国产精品国色综合久久| xxxx日韩| 高清视频一区| 日韩精品免费一区二区夜夜嗨 | 成人网在线观看| 91精品国产自产观看在线 | jizz中国少妇| 日韩久久免费av| 欧美熟女一区二区| 亚洲国产精品久久久久秋霞蜜臀| 成人乱码一区二区三区| 亚洲成人激情在线| 外国精品视频在线观看 | 给我看免费高清在线观看| 26uuu久久天堂性欧美| 人人妻人人藻人人爽欧美一区| 久久久久久久精| 国产一二三四区在线| 中文字幕精品一区| 久久免费国产视频| 日本不卡三区| 久久伊人色综合| 在线黄色网页| 97国产成人精品视频| 欧美xxx性| 国产精品午夜一区二区欲梦| 99国内精品久久久久| 成人午夜电影在线播放| 极品尤物一区| 日本一区二区免费看| 91精品蜜臀一区二区三区在线| 黄色一级片黄色| 国产亚洲精品自拍| 在线免费观看视频黄| 国产在线一区二区综合免费视频| 日本中文字幕精品| 97久久超碰精品国产| 国产传媒视频在线| 樱花草国产18久久久久| 国产成人综合欧美精品久久| 欧美日韩国产一级二级| 亚洲黄色在线播放| 亚洲视频自拍偷拍| 日本h片在线观看| 国产成人精品免费久久久久| 在线高清欧美| 蜜桃av久久久亚洲精品| 91av精品| 久久久免费视频网站| 国内精品久久久久影院薰衣草 | 一区二区精品视频在线观看| 亚洲第一黄色网| 91高清在线| 97超级碰碰碰| 久久99成人| 天天综合色天天综合色hd| 亚洲电影av| 日韩高清在线一区二区| 2020国产成人综合网| 曰本女人与公拘交酡| 欧美性猛交一区二区三区精品| 懂色av蜜臀av粉嫩av分享吧| 中文字幕亚洲欧美日韩在线不卡| www.色在线| **亚洲第一综合导航网站| 欧美少妇性xxxx| 久久久一本二本三本| 国产一区二区免费视频| 国产三级av在线播放| 亚洲成人自拍网| 国产深喉视频一区二区| 一区二区亚洲欧洲国产日韩| 岛国av在线播放| 亚洲xxx大片| 91精品久久久久久久久久不卡| 又色又爽又高潮免费视频国产| 成人教育av在线| 丁香花五月激情| 欧美精品乱码久久久久久 | 国产精品麻豆一区二区| 特级西西444www大精品视频免费看| 日韩一区二区三免费高清| 尤物网址在线观看| 国产精品爽黄69天堂a| 国产一区不卡| 亚洲国产精品毛片av不卡在线| 成人毛片视频在线观看| 欧美成人精品欧美一级私黄| 欧美精品aⅴ在线视频| 99青草视频在线播放视| 国产成人jvid在线播放| 日韩系列在线| 国产免费黄视频| www久久久久| 欧美性猛交bbbbb精品| 亚洲精品国产电影| h片在线观看下载| 国产日韩久久| 妖精视频成人观看www| 亚洲av网址在线| 精品福利在线观看| 午夜性色福利影院| 2019av中文字幕| 欧美日韩直播| 欧美xxxxx在线视频| 久久久另类综合| 欧美一级黄视频| 在线观看日韩欧美| 全球中文成人在线| 丰满人妻一区二区三区53号| 国产1区2区3区精品美女| 日本学生初尝黑人巨免费视频| 亚洲国产欧美一区二区丝袜黑人| 草草在线观看| 欧美日韩在线精品| 日本不卡视频在线观看| 久久久久人妻一区精品色| 欧美精品久久99| 性欧美videos高清hd4k| 国产精品免费区二区三区观看| 亚洲精品三级| 少妇av片在线观看| 717成人午夜免费福利电影| 亚洲综合图区| 国产一区二区高清视频| 久久久精品五月天| 久草福利资源在线| 精品欧美一区二区三区精品久久| xxx性欧美| 日韩高清国产精品| 国产一区二区三区免费播放| 久久久国产成人| 亚洲偷欧美偷国内偷| 99精品美女视频在线观看热舞| 777精品久无码人妻蜜桃| 日本一区二区三级电影在线观看| 国产偷拍一区二区| 亚洲**2019国产| 久久在线免费| 国产chinese中国hdxxxx| 欧美性大战久久| 午夜伦理大片视频在线观看| 欧美尤物一区| 国产91丝袜在线播放| 中文字幕高清在线免费播放| 久久国产精品电影| 天天躁日日躁狠狠躁欧美| 国产精品久久久久久久99| 欧美性色视频在线| 搞黄网站在线观看| 免费国产一区二区| 国产成人av资源| 一级黄色片免费看| 69av在线播放| 欧美激情视频一区二区三区免费|