文章目錄
從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;},這樣就會邊執行邊在螢幕上顯示進度條。