在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Boost庫是什么?C++ Boost的詳細資料簡介

C語言專家集中營 ? 來源:未知 ? 作者:易水寒 ? 2018-10-03 17:45 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

compressed_pair,跟STL里的pair差不多。不過對空元素做了優化。

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

跨語言支持:Python,呵呵,好東東啊,可以將C++的類和函數映射給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:內存池,呵呵,不用害怕頻繁分配釋放內存導致內存碎片,也不用自己辛辛苦苦自己實現了。

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

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

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

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Boost
    +關注

    關注

    5

    文章

    370

    瀏覽量

    48375
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73857
  • STL
    STL
    +關注

    關注

    0

    文章

    86

    瀏覽量

    18383

原文標題:C++ Boost庫簡介

文章出處:【微信號:C_Expert,微信公眾號:C語言專家集中營】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是C++Boost

    C++Boost介紹C++Boost按功能分類有哪些?常用的C++Boost有哪些?
    發表于 11-04 07:34

    一文讀懂boost的概念和安裝方式

    一、boost簡介boost是一個功能強大,構造精巧,跨平臺的免費的C++開源
    的頭像 發表于 09-23 09:47 ?8038次閱讀

    信立物聯網的產品詳細資料簡介免費下載

    本文檔的主要內容詳細介紹的是信立物聯網的產品詳細資料簡介免費下載。
    發表于 09-20 08:00 ?6次下載
    信立物聯網的產品<b class='flag-5'>詳細資料簡介</b>免費下載

    直流無刷電機的工作原理的詳細資料簡介

    本文檔的主要內容詳細介紹的是直流無刷電機的工作原理的詳細資料簡介主要內容包括了:直流無刷電機的優越性,直流無刷電機的控制結構 ,直流無刷電機的控制原理,P.I.D 控制簡介,電機驅動器的保護措施
    發表于 01-02 08:00 ?91次下載
    直流無刷電機的工作原理的<b class='flag-5'>詳細資料簡介</b>

    C++程序設計教程之C++工具的詳細資料說明

    本文檔的詳細介紹的是C++程序設計教程之C++工具的詳細資料說明主要內容包括了:1. 異常處理,2. 命名空間,3. 使用早期的函數
    發表于 03-14 16:39 ?4次下載
    <b class='flag-5'>C++</b>程序設計教程之<b class='flag-5'>C++</b>工具的<b class='flag-5'>詳細資料</b>說明

    FPGA視頻教程之NIOSII開發工具的詳細資料簡介

    本文檔的主要內容詳細介紹的是FPGA視頻教程之NIOSII開發工具的詳細資料簡介資料免費下載。
    發表于 03-21 15:43 ?9次下載
    FPGA視頻教程之NIOSII開發工具的<b class='flag-5'>詳細資料簡介</b>

    PHP教程之CSS的詳細資料簡介

    本文檔的介紹的是PHP教程之CSS的詳細資料簡介主要內容包括了:1.DHTML簡介,2.何為CSS(層疊樣式表),3.CSS的幾種設置方式,4.樣式規則的選擇器,5.樣式規則的注釋與有效范圍,6.用DreamWeaver產生CSS,7.樣式屬性詳解
    發表于 04-18 17:04 ?6次下載
    PHP教程之CSS的<b class='flag-5'>詳細資料簡介</b>

    51單片機的基本數據類型詳細資料簡介

    本文檔的主要內容詳細介紹的是51單片機的基本數據類型詳細資料簡介
    發表于 06-17 17:44 ?0次下載
    51單片機的基本數據類型<b class='flag-5'>詳細資料簡介</b>

    計算機的二進制概念和進制運算的詳細資料簡介

    本文檔的主要內容詳細介紹的是計算機的二進制概念和進制運算的詳細資料簡介
    發表于 12-11 17:34 ?19次下載
    計算機的二進制概念和進制運算的<b class='flag-5'>詳細資料簡介</b>

    Qt Creator的詳細資料簡介

    本文檔的主要內容詳細介紹的是Qt Creator的詳細資料簡介包括了:1 Qt Creator的下載和安裝2 Qt Creator環境介紹3 Qt工具簡介
    發表于 12-26 16:59 ?33次下載
    Qt Creator的<b class='flag-5'>詳細資料簡介</b>

    STM32串口實驗的詳細資料簡介

    本文檔的主要內容詳細介紹的是STM32串口實驗的詳細資料簡介主要內容包括了:Systick原理和配置方法, ALIENTEK 延時函數delay講解
    發表于 01-02 08:00 ?1次下載
    STM32串口實驗的<b class='flag-5'>詳細資料簡介</b>

    STM32F103ZET6單片機的詳細資料簡介

    本文檔的主要內容詳細介紹的是STM32F103ZET6單片機的詳細資料簡介
    發表于 03-21 08:00 ?39次下載
    STM32F103ZET6單片機的<b class='flag-5'>詳細資料簡介</b>

    GC3210嵌入式芯片的詳細資料簡介

    本文檔的主要內容詳細介紹的是GC3210嵌入式芯片的詳細資料簡介資料免費下載。
    發表于 04-22 08:00 ?0次下載
    GC3210嵌入式芯片的<b class='flag-5'>詳細資料簡介</b>

    S50非接觸式IC卡的詳細資料簡介

    本文檔的主要內容詳細介紹的是S50非接觸式IC卡的詳細資料簡介
    發表于 09-09 15:33 ?20次下載
    S50非接觸式IC卡的<b class='flag-5'>詳細資料簡介</b>

    Boost.asio源碼剖析

    1、前言 Boost是一個可移植、提供源代碼的C++,作為標準的后備,是C++標準化進程的
    的頭像 發表于 11-09 14:36 ?1752次閱讀
    <b class='flag-5'>Boost</b>.asio源碼剖析
    主站蜘蛛池模板: 色多多视频在线观看 | 开心激情五月婷婷 | 国产小视频免费看 | 亚洲情a成黄在线观看 | 午夜欧美日韩 | 1000部又爽又黄的做黄禁片 | 天天爽夜夜爽一区二区三区 | 色老头成人免费综合视频 | 亚洲理论在线观看 | 午夜精品在线免费观看 | 国产精品一级毛片不收费 | 夜夜爽天天干 | 在线免费亚洲 | 国产精品伦视频观看免费 | 丁香花在线电影小说观看 | 清纯唯美亚洲综合欧美色 | 免费看黄在线观看 | 免费大片黄日本在线观看 | 美女视频黄a视频免费全过程 | a级黑粗大硬长爽猛视频毛片 | 四虎亚洲国产成人久久精品 | 天天做天天爱夜夜爽女人爽宅 | 国产日本在线播放 | 免费国产黄网站在线观看视频 | 免费网址视频在线看 | 在线免费色视频 | 黄色毛片大全 | 色尼玛亚洲综合 | 成人在线精品 | 黄网免费| 窝窝午夜在线观看免费观看 | 2019天天干 | h视频在线观看网站 | 天天干干 | 8050网午夜一级毛片免费不卡 | 欧美婷婷六月丁香综合色 | 天天做天天爱天天一爽一毛片 | 欧美在线视频7777kkkk | 黄色免费看网站 | 色婷婷色综合激情国产日韩 | 四虎永久在线精品视频免费观看 |