• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統(tǒng)計(jì)

            最新評(píng)論

            C++ Boost庫(kù)簡(jiǎn)介

            C++ Boost庫(kù)簡(jiǎn)介

            ????boost是一個(gè)準(zhǔn)標(biāo)準(zhǔn)庫(kù),相當(dāng)于STL的延續(xù)和擴(kuò)充,它的設(shè)計(jì)理念和STL比較接近,都是利用泛型讓復(fù)用達(dá)到最大化。不過(guò)對(duì)比STL,boost更加實(shí)用。STL集中在算法部分,而boost包含了不少工具類,可以完成比較具體的工作。

            ????boost主要包含一下幾個(gè)大類:字符串及文本處理、容器、迭代子(Iterator)、算法、函數(shù)對(duì)象和高階編程、泛型編程、模板元編程、預(yù)處理元編程、并發(fā)編程、數(shù)學(xué)相關(guān)、糾錯(cuò)和測(cè)試、數(shù)據(jù)結(jié)構(gòu)、輸入/輸出、跨語(yǔ)言支持、內(nèi)存相關(guān)、語(yǔ)法分析、雜項(xiàng)。 有一些庫(kù)是跨類別包含的,就是既屬于這個(gè)類別又屬于那個(gè)類別。

            ????在文本處理部分,conversion/lexcial_cast類用于“用C++”的方法實(shí)現(xiàn)數(shù)字類型和字符串之間的轉(zhuǎn)換。 主要是替代C標(biāo)準(zhǔn)庫(kù)中的 atoi、 itoa之類的函數(shù)。當(dāng)然其中一個(gè)最大的好處就是支持泛型了。

            ????format庫(kù)提供了對(duì)流的“printf-like”功能。printf里使用%d、%s等等的參數(shù)做替換的方法在很多情況下還是非常方便的,STL的iostream則缺乏這樣的功能。format為stream增加了這個(gè)功能,并且功能比原始的printf更強(qiáng)。

            ????regex,這個(gè)不多說(shuō)了,正則表達(dá)式庫(kù)。如果需要做字符串分析的人就會(huì)理解正則表達(dá)式有多么有用了。

            ????spirit,這個(gè)是做LL分析的框架,可以根據(jù)EBNF規(guī)則對(duì)文件進(jìn)行分析。(不要告訴我不知道什么是EBNF)。做編譯器的可能會(huì)用到。一般人不太用的到。

            ????tokenizer庫(kù)。我以前經(jīng)常在CSDN上看到有人問(wèn)怎么把一個(gè)字符串按逗號(hào)分割成字符串?dāng)?shù)組。也許有些人很羨慕VB的split函數(shù)。現(xiàn)在,boost的tokenizer也有相同的功能了,如果我沒(méi)記錯(cuò)的話,這個(gè)tokenizer還支持正則表達(dá)式,是不是很爽?

            ????array: 提供了常量大小的數(shù)組的一個(gè)包裝,喜歡用數(shù)組但是苦惱數(shù)組定位、確定數(shù)組大小等功能的人這下開(kāi)心了。

            ????dynamic_bitset,動(dòng)態(tài)分配大小的bitset,我們知道STL里有個(gè)bitset,為位運(yùn)算提供了不少方便。可惜它的大小需要在編譯期指定。現(xiàn)在好了,運(yùn)行期動(dòng)態(tài)分配大小的bitset來(lái)了。

            ????graph。提供了圖的容器和相關(guān)算法。我還沒(méi)有在程序中用到過(guò)圖,需要用的人可以看看。

            ????multi_array提供了對(duì)多維數(shù)組的封裝,應(yīng)該還是比較有用的。

            ????并發(fā)編程里只有一個(gè)庫(kù),thread,提供了一個(gè)可移植的線程庫(kù),不過(guò)在Windows平臺(tái)上我感覺(jué)用處不大。因?yàn)樗腔赑osix線程的,在Windows里對(duì)Posix的支持不是很好。

            ????接下來(lái)的 數(shù)學(xué)和數(shù)值 類里,包含了很多數(shù)值處理方面的類庫(kù),數(shù)學(xué)類我也不太熟,不過(guò)這里有幾個(gè)類還是很有用的,比如rational分?jǐn)?shù)類,random隨機(jī)數(shù)類,等等。

            ????static_assert,提供了編譯器的assert功能。

            ????test庫(kù),一個(gè)單元測(cè)試框架,非常不錯(cuò)。

            ????concept_check提供了泛型編程時(shí),對(duì)泛型量的一點(diǎn)檢查,不是很完善,不過(guò)比沒(méi)有好。

            ????數(shù)據(jù)類型類any,一個(gè)安全的可以包含不同對(duì)象的類。把它作為容器的元素類型,那么這個(gè)容器就可以包含不同類型的元素。比用void *要安全。

            ????compressed_pair,跟STL里的pair差不多。不過(guò)對(duì)空元素做了優(yōu)化。

            ????tuple,呵呵,也許是某些人夢(mèng)寐以求的東西。可以讓函數(shù)返回多個(gè)值。

            ????跨語(yǔ)言支持:python,呵呵,好東東啊,可以將C++的類和函數(shù)映射給python使用。以下為幾個(gè)CSDN上的關(guān)于boost.python的中文資料:http://dev.csdn.net/article/19/19828.shtm,http://dev.csdn.net/article/19/19829.shtm,http://dev.csdn.net/article/19/19830.shtm,http://dev.csdn.net/article/19/19831.shtm

            ????pool:內(nèi)存池,呵呵,不用害怕頻繁分配釋放內(nèi)存導(dǎo)致內(nèi)存碎片,也不用自己辛辛苦苦自己實(shí)現(xiàn)了。

            ????smart_ptr:智能指針,這下不用擔(dān)心內(nèi)存泄漏的問(wèn)題了吧。不過(guò),C++里的智能指針都還不是十全十美的,用的時(shí)候小心點(diǎn)了,不要做太技巧性的操作了。

            ????date_time,這個(gè)是平臺(tái)、類庫(kù)無(wú)關(guān)的實(shí)現(xiàn),如果程序需要跨平臺(tái),可以考慮用這個(gè)。

            ???? timer,提供了一個(gè)計(jì)時(shí)器,雖然不是Windows里那種基于消息的計(jì)時(shí)器,不過(guò)據(jù)說(shuō)可以用來(lái)測(cè)量語(yǔ)句執(zhí)行時(shí)間。

            ???? uitlity里提供了一個(gè)noncopyable類,可以實(shí)現(xiàn)“無(wú)法復(fù)制”的類。很多情況下,我們需要避免一個(gè)類被復(fù)制,比如代表文件句柄的類,文件句柄如果被兩個(gè)實(shí)例共享,操作上會(huì)有很多問(wèn)題,而且語(yǔ)義上也說(shuō)不過(guò)去。一般的避免實(shí)例復(fù)制的方法是把拷貝構(gòu)造和operator=私有化,現(xiàn)在只要繼承一下這個(gè)類就可以了,清晰了很多。

            ???? value_initialized:數(shù)值初始化,可以保證聲明的對(duì)象都被明確的初始化,不過(guò)這個(gè)真的實(shí)用嗎?似乎寫(xiě)這個(gè)比直接寫(xiě)初始化還累。呵呵,仁者見(jiàn)仁了。

            ???? 這里面除了regex、python和test需要編譯出庫(kù)才能用,其他的大部分都可以直接源代碼應(yīng)用,比較方便。其實(shí)這些庫(kù)使用都不難。最主要的原因是有些庫(kù)的使用需要有相關(guān)的背景知識(shí),比如元編程、STL、泛型編程等等。

            轉(zhuǎn)載自“令狐蟲(chóng)的無(wú)聊空間”

            posted on 2006-11-23 14:49 大龍 閱讀(280) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久大香萑太香蕉av| 久久精品国产亚洲AV香蕉| 国产亚洲色婷婷久久99精品91 | 伊人久久无码精品中文字幕| 久久精品麻豆日日躁夜夜躁| 久久99精品久久只有精品| 国产精品熟女福利久久AV| 久久亚洲精品国产亚洲老地址 | 久久精品水蜜桃av综合天堂| 国产成人无码精品久久久免费 | 国产成人精品久久亚洲高清不卡 | 色8激情欧美成人久久综合电| 青青草国产成人久久91网| 精品国产VA久久久久久久冰| 精品久久久久久无码免费| 国产综合久久久久久鬼色| 国产精品久久婷婷六月丁香| 国内精品久久久久久中文字幕| 久久精品欧美日韩精品| 久久精品国产AV一区二区三区| 久久久久亚洲AV无码专区首JN | 久久人妻少妇嫩草AV无码蜜桃| 国产精品免费久久久久影院| 久久天天躁狠狠躁夜夜网站| 亚洲狠狠婷婷综合久久蜜芽 | 中文精品99久久国产| 99久久综合国产精品二区| 狠狠色丁香久久综合五月| 国产精品美女久久久久网| 久久国产精品-国产精品| 日日噜噜夜夜狠狠久久丁香五月| 亚洲日韩欧美一区久久久久我| 久久精品成人| 久久AV高潮AV无码AV| 亚洲欧洲久久久精品| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 日韩人妻无码精品久久免费一 | 99久久国产综合精品网成人影院 | 久久天天婷婷五月俺也去| 久久亚洲欧美日本精品| 色综合久久无码五十路人妻|