boost庫學習

來源:互聯網
上載者:User
文章目錄
  • lexical_cast
  • timer

從www.boost.org下載,也可以從國內鏡像boost.c-view.org下載,我下載的版本是1.31,好象1.32快要出了。直接
下載後解壓出來即可使用,編譯的時候必須把boost的路徑加到命令列裡。boost的大部分組件都可以直接使用,另外有一些組件因為平台的原因需要編譯
庫,暫時我還沒有自己編譯過庫。

lexical_cast

lexical_cast用來做類型轉換,可以是字串->數值,也可以是數值->字串。用法很簡單,
字串轉換到數值的時候,先包含標頭檔#include <boost/lexical_cast.hpp>,然後如下使用:int a
= boost::lexical_cast<int>("123");即可以將字串"123"轉換為int型的123。

數組->字串的轉換也一樣,比如string s = boost::lexical_cast<string>(123.12);

如果轉換失敗,會有bad_lexical_cast異常拋出,該類是bad_cast的子類。

boost依賴於字元流std::stringstream,它的原理是將源類型讀入到字元流中,再寫到目標類型中。

lexical_cast不僅僅局限於字串和數實值型別之間的轉換,可在任意可輸出到stringstream的類型和任意可從stringstream輸入的類型間轉換。

timer

boost提供了timer類用於計時,另外還有計時器時間報告類progress_timer和進度條顯示類progress_display。

timer類包含在標頭檔boost/timer.hpp中,progress_timer和progress_display類都包含在boost/progress.hpp中。

timer類測配量序耗用時間,它使用了標準庫的clock()函數,有良好的移植性,但代價卻是精度不高。

progress_timer類自動測配量序耗費時間,在對象時顯示耗費時間資訊,預設向std::cout輸出字元資訊。比如在main中產生一個progress_timer的對象t,在程式結束的時間會在螢幕上輸出執行的時間。

progress_display類以適當的形式在適當的位置顯示進度條。比如在執行一個for迴圈之臆產生一個對象
progress_display show_progress(10000);然後在執行這個for迴圈的過程中讓這個對象自加:for(int
i=0;i<10000;i++){++show_progress;},這樣就會邊執行邊在螢幕上顯示進度條。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.