日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Boost库学习(0)

發(fā)布時(shí)間:2025/7/14 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Boost库学习(0) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

最近看了C++11標(biāo)準(zhǔn),感覺C++的變得更強(qiáng)大了,連語(yǔ)法都有了點(diǎn)變化。(最后一次用C++可能還是在學(xué)校時(shí),工作中一直用的是C,偶爾也用Perl/Python寫點(diǎn)工具。)

實(shí)際試用了一下C++的新特性,有點(diǎn)失望。不是C++11的特性不好,而是編譯器不完全支持。聽說(shuō)C++14的標(biāo)準(zhǔn)都要出來(lái)了,而C++11都沒有完全支持。

例如:

  • 多線程,Linux下要在鏈接時(shí)手動(dòng)加入pthread才行,不然運(yùn)行出錯(cuò);Windows下好像不用特別做什么。(也可能是IDE自己做了,我不知道而已。)

  • 正則表達(dá)式,Linux下GCC編譯支持,運(yùn)行不支持。(也可能是沒有鏈接某個(gè)庫(kù))

我實(shí)在不喜歡這種明明是標(biāo)準(zhǔn),卻還要滿世界找鏈接庫(kù)的事情,所以決定用Boost庫(kù)。(雖然也要鏈接Boost的庫(kù),但是卻明明白白。)


在正式開始學(xué)習(xí)Boost庫(kù)之前,先介紹幾個(gè)要用到C++11新特性。

  • 匿名函數(shù)

?????? STL中有很多地方要用函數(shù)作為參數(shù),為了傳一個(gè)參數(shù)而在老遠(yuǎn)的地方定義一個(gè)函數(shù)實(shí)在有些不爽。

[capture-type](param-list)?{?function?body?}

????? capture-type有3種,空白,=和&。空白的話,function body里只能使用傳入的參數(shù)(可能也能用全局變量,這個(gè)沒試過(guò));=表示可以用外部的變量(值傳遞);&表示可以用外部的變量(引用傳遞)。

void?funcX() {std::vector<int>?vec;...int?factor=3;/*?使用=,可以用外部的變量factor?*/int?cnt=std::count_if(vec.cbegin(),vec.cend(),[=](int?elem){?return?elem%factor;?}); }
  • for

?????? C++一直遭人詬病的沒有foreach,現(xiàn)在終于彌補(bǔ)了這個(gè)遺憾。

void?funcX() {std::vector<int>?vec;...for(int?elem:vec){...}/*?相當(dāng)于下面的代碼?*//*?for(std::vector<int>::iterator?it=vec.begin();it!=vec.end();++it)*?{*?????int?elem=*it;*?????...*?}*/ }
  • auto

??????自動(dòng)推測(cè)變量的類型,這是個(gè)好東西,又省心又省力。

?for(std::vector<int>::iterator?it=vec.begin();it!=vec.end();++it)/*?相當(dāng)于下面的代碼?*/for(auto?it=vec.begin();it!=vec.end;++it)
  • shared_ptr

????? 用于自動(dòng)delete內(nèi)存空間。內(nèi)部自動(dòng)計(jì)算引用次數(shù)(即有幾個(gè)指針指向這塊空間),當(dāng)引用次數(shù)變成0時(shí),自動(dòng)調(diào)用delete處理。

轉(zhuǎn)載于:https://my.oschina.net/u/2002913/blog/306507

總結(jié)

以上是生活随笔為你收集整理的Boost库学习(0)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。