精品欧美一区二区三区在线观看 _久久久久国色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)

国产嫩草影院久久久久| 久久久久午夜电影| 91久久国产最好的精华液| 欧美日韩高清在线一区| 亚洲视频一区在线播放| 国产精品porn| 亚洲欧美激情视频| 色噜噜狠狠一区二区三区狼国成人| 午夜小视频在线观看| 99久久精品免费看国产 | 国产精品12| 亚洲精品久久久久久久蜜桃| 欧美韩国一区| 国产一区二区日韩| 成人做爰www看视频软件| 韩国女主播一区二区| 亚洲在线一区二区三区| 日韩在线导航| 特黄aaaaaaaaa真人毛片| 久久国产精品免费| 欧美影院在线播放| 中文字幕av免费在线观看| 国产精品手机在线播放| 精品欧美久久久| 日日躁夜夜躁aaaabbbb| 欧美三级网站| 一区二区免费视频| 一区二区精品在线观看| 欧美孕妇孕交xxⅹ孕妇交| 国产成人免费视| 国产精品亚洲第一区| 国产九色在线播放九色| 精品1区2区3区4区| 久久亚洲精品网站| sm捆绑调教视频| 国产探花一区二区| 日韩精品一二三四区| 美女被爆操网站| 久久久久99精品成人片我成大片| 男同在线观看| 成人午夜av影视| 91视频88av| 91麻豆成人精品国产| 日韩av一区二区三区四区| 热久久这里只有| 性无码专区无码| 亚洲一区欧美二区| 5278欧美一区二区三区| 国产成人精品a视频一区| 影音先锋亚洲电影| 国内精品久久久久久中文字幕| 欧美成人aaa片一区国产精品| 亚欧美无遮挡hd高清在线视频| 中文字幕日韩欧美| 国产精品久久国产精麻豆96堂| heyzo久久| 在线亚洲午夜片av大片| 日本成人午夜影院| 久久社区一区| 欧美成人精品不卡视频在线观看| 小泽玛利亚一区二区免费| 亚洲精品在线观看91| 久久69精品久久久久久国产越南| 麻豆一区产品精品蜜桃的特点| 在线精品福利| 欧美最猛性xxxxx免费| 久草视频一区二区| 免费欧美日韩国产三级电影| 91九色在线视频| 欧美日韩午夜爽爽| 久久99久久99精品免费看小说| 手机在线电影一区| 久久av在线看| 国产性猛交普通话对白| 日韩亚洲精品在线| 日韩av快播网址| 中文字幕在线观看欧美| 国产九九视频一区二区三区| 99国产在线| 天天操天天射天天| 国产欧美久久久精品影院| 懂色av一区二区三区四区五区| 久久五月精品| 亚洲第一福利一区| 亚洲精品高清无码视频| 精品视频一区二区三区在线观看| 日韩精品一区二区在线观看| 巨胸大乳www视频免费观看| 精品国产一区一区二区三亚瑟| 俺去亚洲欧洲欧美日韩| 国产精品 欧美 日韩| 日韩中文字幕区一区有砖一区| 亚洲综合精品一区二区| 免费在线一级视频| 亚洲人成人一区二区在线观看| 人妻熟妇乱又伦精品视频| 国产精品99精品一区二区三区∴| 欧美xfplay| 一级肉体全黄裸片| 成人爽a毛片免费啪啪| 亚洲高清资源| 2019亚洲日韩新视频| 天天综合久久综合| 国产成人av福利| 亚洲激情一区二区三区| 国产乱码在线| 欧美男生操女生| 久久人人爽人人爽人人片| 亚洲澳门在线| 人九九综合九九宗合| 国产高中女学生第一次| 欧美激情一区二区| 91视频 -- 69xx| 久久伊人影院| 中文字幕在线成人| 国产www在线| 国产成人午夜片在线观看高清观看| 日本高清视频一区二区三区| 2019中文字幕在线电影免费| 正在播放亚洲一区| 亚洲午夜精品久久久久久高潮| 亚洲东热激情| 97超级在线观看免费高清完整版电视剧| 国产主播福利在线| 婷婷综合五月天| 91人人澡人人爽| 亚洲精品成人无限看| 国产精品极品美女在线观看免费| 色一情一乱一区二区三区| 亚洲女人****多毛耸耸8| 国产小视频精品| 九九精品久久| 情事1991在线| 偷拍自拍在线| 欧美日韩在线视频一区二区| 美女搡bbb又爽又猛又黄www| 亚洲精品成人影院| 91精品综合视频| 免费a在线看| 欧美区一区二区三区| 日本一卡二卡在线播放| 石原莉奈在线亚洲二区| 欧美日韩三区四区| 精品欧美一区二区三区在线观看| 亚洲精品久久久久久久久久久| 日韩黄色三级视频| 91色婷婷久久久久合中文| 免费黄色福利视频| 亚洲美女15p| 国产mv免费观看入口亚洲| 四虎影视在线观看2413| 色综合天天性综合| xxxxx在线观看| 日韩avvvv在线播放| 日韩精品一区二区三区外面| 成人日韩精品| www日韩欧美| 国产av精国产传媒| 亚洲一区中文在线| 日本五十肥熟交尾| 午夜亚洲视频| 日韩中文字幕一区二区| 精品国产黄a∨片高清在线| 精品国产一区二区在线| 精品国产九九九| 亚洲国产精品久久久久秋霞影院| 中国一级特黄录像播放| 亚洲综合三区| 日韩欧美亚洲日产国| 亚洲久草在线| 国产综合在线视频| 国产在线视频网址| 欧美久久一二区| 九九九国产视频| 久久午夜羞羞影院免费观看| 亚洲 欧美 日韩系列| 91高清一区| 国产专区一区二区| 成人做爰免费视频免费看| 日韩中文在线中文网在线观看| 国产三级伦理片| 婷婷亚洲久悠悠色悠在线播放 | 2023国产精品视频| 91小视频网站| 亚洲高清毛片| 亚洲一区二区三区在线观看视频| 日本少妇精品亚洲第一区| 久久久综合av| 日韩三级影院| 日韩电影网在线| 国产免费av观看| 粉嫩老牛aⅴ一区二区三区| 精品人体无码一区二区三区| 成人自拍视频在线观看| 国产视频一区二区三区在线播放| 一区二区中文字| 蜜桃狠狠色伊人亚洲综合网站| 99精品女人在线观看免费视频| 91精品国产91久久久| 日本中文字幕在线播放| 亚洲精品久久视频| 国产精品污视频| 色视频成人在线观看免| 久久亚洲成人av| 欧美激情综合五月色丁香 | 一区二区精彩视频| 国产成人综合精品在线| 视频在线观看入口黄最新永久免费国产| 精品夜色国产国偷在线| 国产夫妻性生活视频| 欧美中文一区二区三区| 日本少妇在线观看| 亚洲天堂免费看| 亚洲AV无码成人精品区明星换面| 成人av高清在线| 日本网站在线看| 免费看日韩精品| 久久国产色av免费观看| 国产精品久久久免费| 人人妻人人澡人人爽欧美一区| 日本欧美视频| 欧美福利精品| 日韩精品免费一区二区夜夜嗨| av电影成人| 白嫩亚洲一区二区三区| 国产精品免费在线免费| 日韩av福利| 欧美中文字幕在线| 多野结衣av一区| 国内精品久久久久影院 日本资源| 激情影院在线观看| 日韩在线视频观看| 一广人看www在线观看免费视频| 亚洲欧洲在线播放| 三级视频在线| 精品偷拍一区二区三区在线看| 三级小视频在线观看| 亚洲精品一区二区三区福利| www.99视频| 日韩精品中文字幕一区 | 国产成人综合亚洲91猫咪| 在线播放av中文字幕| 久久国产人妖系列| 日韩av在线中文| 九九精品视频在线看| mm131亚洲精品| 久久电影网电视剧免费观看| 国产小视频精品| 九色|91porny| 古装做爰无遮挡三级聊斋艳谭| 国产美女一区二区| 精品人妻一区二区乱码| 国产91色综合久久免费分享| 性折磨bdsm欧美激情另类| 成人网男人的天堂| 999精品免费视频| 久久精品一区二区三区不卡| 中文字幕免费高清| 国产精品蜜臀在线观看| 婷婷久久综合网| 亚洲一卡二卡三卡四卡| 国产精品黄色网| 在线观看日韩电影| 国产一区二区自拍视频| 日韩视频不卡中文| 男人天堂一区二区| 亚洲欧美一区二区三区在线| 国自产拍在线网站网址视频| 色狠狠久久aa北条麻妃| 麻豆视频网站在线观看| 欧美夫妻性视频| 五月天国产在线| 国产视频999| 国内精品国产成人国产三级粉色| 噜噜噜噜噜久久久久久91| 成人中文视频| 国产 欧美 日韩 一区| 一区二区三区精品视频在线观看| 超碰在线97免费| 国产麻豆视频精品| 国产激情视频网站| 国产欧美一区二区精品婷婷| 中文字幕在线观看成人| 岛国av一区二区在线在线观看| 日本欧美www| 精品久久免费看| 国产特黄在线| 欧美日韩国产成人高清视频| 成人欧美大片| 99久久精品无码一区二区毛片| 伊甸园亚洲一区| 免费看黄色a级片| 丝袜美腿亚洲色图| 欧美专区第二页| 久久精品一区二区三区av| 欧美成人精品激情在线视频| 日韩欧美一区视频| 国产高潮在线观看| 在线视频日韩精品| www555久久| 成人在线免费观看视视频| 成人动态视频| 黄瓜视频免费观看在线观看www| 国产欧美在线| 乳色吐息在线观看| 国产精品福利一区二区三区| 亚洲永久精品在线观看| 91精品婷婷国产综合久久性色| 你懂的在线观看视频网站| 色综合视频网站| 欧美少妇激情| 日本成人看片网址| 一区二区三区国产盗摄| 色诱av手机版| 亚洲欧洲一区二区三区| 91丝袜一区二区三区| 精品少妇一区二区三区在线播放| 一级日本在线| 国产精品自拍偷拍| 国产精品午夜一区二区三区| 鲁一鲁一鲁一鲁一色| 顶级嫩模精品视频在线看| 欧美大片xxxx| 欧美日韩的一区二区| 国产福利第一视频在线播放| 91超碰中文字幕久久精品| 99re6热只有精品免费观看| 国产奶头好大揉着好爽视频| 麻豆久久久久久| 波多野结衣a v在线| 欧美性精品220| 人妻妺妺窝人体色www聚色窝| 欧美激情国产日韩精品一区18| 成人动漫视频在线观看| 老司机av福利| 久久99国产精品免费| 91香蕉视频污在线观看| 欧美日韩国产小视频在线观看| 精品av中文字幕在线毛片| 热久久这里只有| 国产成人精品999在线观看| 中国丰满人妻videoshd | 国产理论在线| 国产私拍一区| 亚洲黑丝一区二区| 国产xxxx视频| 舔着乳尖日韩一区| 四虎精品在永久在线观看| 欧美一级淫片videoshd| 日韩高清三区| 精品久久久噜噜噜噜久久图片 | 亚洲高清视频在线观看| 男人的天堂久久精品| 人与动物性xxxx| 日韩午夜激情电影| 黄色在线看片| 久久久久高清| 蜜臀99久久精品久久久久久软件| 国产又粗又猛又爽又黄的视频小说| 欧美日本一区二区三区| av免费在线免费观看| 成人一区二区在线| 国产欧美日韩综合一区在线播放| 黄瓜视频污在线观看| 欧美性生交片4| 91在线中文| 国语精品免费视频| 可以看av的网站久久看| 99在线视频免费| 欧美一区二区在线不卡| www.综合网.com| 日本一区二区三区免费观看| 久久精品久久精品| 久久久久久久黄色| 亚洲精品日韩欧美| 一区二区三区日本视频| 日韩人妻无码精品久久久不卡| 久久精品人人爽人人爽| 国产一区二区三区视频免费观看| 欧美国产中文字幕| 国产亚洲精品美女久久久久久久久久| 亚洲美女爱爱视频| 亚洲高清三级视频| 成av人电影在线观看| 成人欧美一区二区| 日韩国产欧美在线观看| 日韩女优一区二区| 亚洲精品中文字幕有码专区| 成人豆花视频| 日本一本二本在线观看| 亚洲人成网站色在线观看 | 久久精品99国产精品酒店日本| 动漫av一区| 国产一级特黄a大片免费| 一区二区三区视频在线观看| 久久电影视频| 国产一区二区三区四区hd| 麻豆国产精品官网| 成年人视频在线免费看| 九九热r在线视频精品|