對C++有一定了解的同學一定聽說過boost庫,這是C++的一個著名類庫,在C++的地位感覺可以和Spring在Java中相比。boost向來有準标準庫之稱,很多新特性例如智能指針等都是先在boost中實作,後來被吸收到标準庫之中。而且boost實作了日志、算法、日期、地理、數學、線程協程等各種實用工具,是以如果要學習C++,boost是必須要學習的一個東西。
安裝boost
下載下傳boost
boost官網是
http://www.boost.org/,目前最新的版本是1.65.1,可以到
這裡下載下傳。下載下傳頁面裡有Unix和Windows的源碼,以及Windows版本的第三方二進制包。我們選擇下載下傳源碼。
下載下傳完成後解壓到一個目錄,例如我就放到了
D:\DevTools\boost_1_65_1
,目錄結構如下圖。
目錄結構
boost
目錄下是boost的頭檔案,
libs
下是boost的源代碼。其他檔案夾的内容是文檔和一些工具等等,就不介紹了。
添加環境變量
将你放置boost代碼的目錄設定為環境變量
BOOST_ROOT
,這個目錄将在後面用到。
生成boost指令行工具
首先確定你安裝了Visual Studio 2017,并安裝了 Visual Studio 2017 Developer Command Prompt工具。
打開VS 2017 Developer Command Prompt,切換到boost目錄,執行
bootstrap.bat
腳本,如果執行成功的話,會生成
b2.exe
等幾個工具,這樣生成工具的工作就完成了。
在VS中設定
在VS中建立一個C++項目,然後打開項目屬性頁,然後切換到VC++目錄,在包含目錄和庫目錄中分别添加
BOOST_ROOT
和
BOOST_ROOT\libs
兩個檔案夾。
項目屬性頁
包含目錄
庫目錄
配置完成後,就可以在項目中使用boost了。當然對于Visual Studio來說,還有更簡單的辦法,那就是使用NuGet。
使用NuGet添加
配置完之後,我還發現微軟的NuGet竟然也可以添加boost。方法很簡單,在項目菜單中點選管理NuGet包,然後搜尋
boost
,然後點選右邊的下載下傳按鈕即可。
NuGet安裝boost
由于boost是一個比較大的庫,是以這個安裝過程可能需要多花費幾分鐘。安裝完成後boost類庫會放到項目檔案夾的package檔案夾中。NuGet會自動幫我們配置好包含路徑等設定。我們接下來直接使用就可以了。
運作boost程式
配置好之後,就可以運作boost程式了。例如這裡我準備使用boost庫的一些高精度(最大可達100位)數學常量(值得吐槽的是C++标準庫居然沒有像樣的數學庫,能用的隻有
<cmath>
,而且甚至連PI常量都沒有)。
#include <boost/math/constants/constants.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <iostream>
#include <iomanip>
using namespace std;
using namespace boost::math::constants;
using namespace boost::multiprecision;
int main()
{
cout << "圓周率是:" << setprecision(50) << pi<cpp_dec_float_50>() << endl;
cout << "自然對數e是:" << setprecision(50) << e<cpp_dec_float_50>() << endl;
cout << "根号2是:" << setprecision(50) << root_two<cpp_dec_float_50>() << endl;
return 0;
}
// 圓周率π是:3.1415926535897932384626433832795028841971693993751
// 自然對數e是:2.7182818284590452353602874713526624977572470937
// 根号2是:1.4142135623730950488016887242096980785696718753769