Boost 庫中的實用工具類使用入門

2021-04-20 05:16:39 字數 1613 閱讀 9230

實用工具類開發和維護會耗費程式設計師的時間。boost 通過提供幾個高質量的庫,從而簡化了此過程,您可以將這些庫輕鬆整合到現有的**庫中。本文簡單概述一些較流行的 boost 實用工具類,並幫助您了解如何將它們投入使用。
實用工具類(utility classes)在幾乎任何適當規模的 c++ 專案中都是必需的,但是不存在滿足此需求的標準方法。通常,團隊根據他們的需求編寫實用工具類**,但是由於缺少重要的介面資訊,使得相同組織中的其他專案團隊無法重用那些類。建議的標準模板庫(standard template library,stl)只具有諸如hashstackvector等少數基本類,因此無法有效地用於取代遺留實用工具庫。

本文將介紹幾個 boost 實用工具類,包括tuplestatic_assertpoolrandomprogram_options。您需要對標準 stl 具備一定的了解才能充分理解本文的內容。本文中的所有**都已使用 boost 1.35 來進行了測試並使用 gcc-3.4.4 來進行了編譯。

boost::tuple 類

有時,您希望 c++ 函式返回多個不相關的值。在推出 stl 之前,實現此目的的方法是建立所有不相關變數的結構,並以指標或引用的形式返回它們或作為引數傳遞給函式——但是任一種方法都不是表達程式設計師意圖的方法。stl 引入了pair,可將其用於聚合不相關的資料部分,但它一次只能處理兩個資料物件。為了使用intcharfloat的元組(tuple ),您可以按如下方式返回pair

make_pair> (3, make_pair('a', 0.9));

隨著您新增更多的元素,建立元組結構將變得越來越困難。boosttuple型別派上了用場。要使用boost::tuple,您必須包括標頭檔案 tuple.hpp。要執行元組比較和元組 i/o,您需要分別包括 tuple_comparison.hpp 和 tuple_io.hpp。

第乙個使用元組的程式

清單 1 使用intcharfloat的元組並列印內容。

清單 1. 建立 boost 元組並列印內容

#include

#include

#include

#include

using namespace boost;

int main ( )

此**的輸出為(2 a 0.9)。請注意,<<運算子過載std::ostream,以便通過轉儲每個單獨的tuple元素來輸出元組。

與元組相關的重要事實

在使用元組時,務必牢記以下事實:

本文**ibm developerworks中國

boost之實用工具

1.noncopyable用於禁止複製和拷貝的類繼承。宣告拷貝和賦值函式為私有,將執行時的錯誤轉化為編譯期的錯誤。include include using namespace std using namespace boost class mynoncopy private mynoncopy c...

boost庫實用工具之assign

list inserter operator,const t r 過載 operator 由於list inserter過載了操作符 和逗號,我們就可以讓 變得簡潔 使用assign庫時必須使用using指示符,這有這樣才能讓過載的 等操作符在作用域內生效 例如 void assign case1 ...

g utils 實用工具類

g.utils error function r hash getsearchandhash function win set function hash,win,isreload addlistener function win getquerystring function name,win,i...