• <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)計

            最新評論

            C++ Boost庫簡介

            C++ Boost庫簡介

            ????boost是一個準標準庫,相當于STL的延續(xù)和擴充,它的設計理念和STL比較接近,都是利用泛型讓復用達到最大化。不過對比STL,boost更加實用。STL集中在算法部分,而boost包含了不少工具類,可以完成比較具體的工作。

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

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

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

            ????regex,這個不多說了,正則表達式庫。如果需要做字符串分析的人就會理解正則表達式有多么有用了。

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

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

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

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

            ????graph。提供了圖的容器和相關算法。我還沒有在程序中用到過圖,需要用的人可以看看。

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

            ????并發(fā)編程里只有一個庫,thread,提供了一個可移植的線程庫,不過在Windows平臺上我感覺用處不大。因為它是基于Posix線程的,在Windows里對Posix的支持不是很好。

            ????接下來的 數(shù)學和數(shù)值 類里,包含了很多數(shù)值處理方面的類庫,數(shù)學類我也不太熟,不過這里有幾個類還是很有用的,比如rational分數(shù)類,random隨機數(shù)類,等等。

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

            ????test庫,一個單元測試框架,非常不錯。

            ????concept_check提供了泛型編程時,對泛型量的一點檢查,不是很完善,不過比沒有好。

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

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

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

            ????跨語言支持:python,呵呵,好東東啊,可以將C++的類和函數(shù)映射給python使用。以下為幾個CSDN上的關于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)存導致內(nèi)存碎片,也不用自己辛辛苦苦自己實現(xiàn)了。

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

            ????date_time,這個是平臺、類庫無關的實現(xiàn),如果程序需要跨平臺,可以考慮用這個。

            ???? timer,提供了一個計時器,雖然不是Windows里那種基于消息的計時器,不過據(jù)說可以用來測量語句執(zhí)行時間。

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

            ???? value_initialized:數(shù)值初始化,可以保證聲明的對象都被明確的初始化,不過這個真的實用嗎?似乎寫這個比直接寫初始化還累。呵呵,仁者見仁了。

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

            轉載自“令狐蟲的無聊空間”

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

            日日狠狠久久偷偷色综合免费 | 国产精品久久久久久久久免费| 久久亚洲国产最新网站| 亚洲色大成网站WWW久久九九| 国产亚洲色婷婷久久99精品| 一本一道久久a久久精品综合| AV狠狠色丁香婷婷综合久久| 久久青草国产手机看片福利盒子| 久久久午夜精品福利内容| 久久综合九色综合网站| 思思久久99热只有频精品66| 国产高潮国产高潮久久久91 | 久久se精品一区精品二区国产 | 久久综合综合久久综合| 久久亚洲国产午夜精品理论片| 中文字幕无码久久人妻| 青青国产成人久久91网| 久久久免费精品re6| 欧美亚洲色综久久精品国产| 久久青青国产| 狠狠色丁香婷婷久久综合| 一本一道久久精品综合| 亚洲国产精品久久久久| 久久精品国产亚洲av高清漫画| 日韩AV毛片精品久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 亚洲一区二区三区日本久久九| 午夜精品久久久久久久| 久久精品国产亚洲av日韩| 18禁黄久久久AAA片| 亚洲伊人久久综合中文成人网| 久久精品视屏| 亚洲精品乱码久久久久久| 中文字幕精品久久久久人妻| 久久久久久久久66精品片| 久久天天躁狠狠躁夜夜av浪潮 | 亚洲欧美日韩精品久久亚洲区 | 久久久女人与动物群交毛片| 久久久久久夜精品精品免费啦| A级毛片无码久久精品免费| 亚洲午夜久久久影院|