青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

海邊沫沫

相濡以沫,不如相忘于江湖
posts - 9, comments - 113, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

痛下決心苦學 TR1 和 Boost

Posted on 2008-09-12 21:10 海邊沫沫 閱讀(7868) 評論(8)  編輯 收藏 引用 所屬分類: 高起點C++學習之路

Scott Meyers在他的著名作品《Effective C++》中的第54條寫道:“Familiarize yourself with the standard library, including TR1“,同時在第55條寫道:“Familiarize yourself with Boost“,而這些條款的具體內容中,又說道C++0x 或許會覆蓋某些有趣的語言新特性,但大部分新技能將以標準程序庫的擴充形式體現,同時不斷強調Boost是一個高質量、源代碼開放、跨平臺、兼容多個編譯器的程序庫。于是,我終于痛下決心,花大力氣來學習TR1和Boost。

難道學習學習這幾個庫就真的這么難嗎?其實也不一定很難,但是也絕對不簡單。我之所以搞得一副壯士一去不復返的樣子,那也是有原因的。其中的一個原因是有點被別人誤導,當我在網上搜索Boost相關的文章時,經常看到有人寫編譯Boost時遇到這樣那樣的錯誤,以至于我以為裝個Boost比裝一個操作系統還難。事實上根本不是這樣,Boost的下載很簡單,直接到http://www.boost.org就可以下載最新版本,用起來也不難,大部分的功能都只需要包含Boost的頭文件就可以了,只有極少數的庫庫要預編譯,即使是預編譯,也基本上沒啥門檻,網上寫的那些這樣那樣的問題我也沒遇到,Boost的最新版本和我的Visual Studiao 2008就相處得很好,沒有編譯器兼容的問題。我下載的是1.36.0版,下載下來是50多M,解壓縮后是200多M。打開控制臺,輸入以下命令,就可以完成了Boost的預編譯:

cd?D:\boost_1_36_0
cd?tools\jam\src
build?

這里我是把Boost解壓在了D盤,運行上面的命令后,等一下下,就有一個叫bjam.exe的工具被編譯出來了。然后,把這個工具考貝到D:\boost_1_36_0目錄下,以一定的命令行選項運行該工具,就可以完成Boost的預編譯了。命令如下:

cd?D:\boost_1_36_0
copy?tools\jam\src\bin.ntx86\bjam.exe?.
bjam??--build-dir
= " D:\build-boost " ???--toolset = msvc??--build-type = complete?stage

這些命令都是照著Boost的文檔抄的,沒什么技術含量,只要會用Windows的命令行誰都可以搞定。以后使用Boost的時候,如果哪個庫需要連接編譯出來的二進制庫,只需要在Visual Studio 2008中指定項目的Additional Library Directories 為 D:\boost_1_36_0\stage\lib 就可以了。這個步驟文檔是寫得很清楚的。上面的代碼大家不要復制,因為這個博客系統的編輯器向里面加了一些空格,直接運行有可能會出錯的。

至于TR1的獲得就更加簡單了,Visual Studio 2008推出后不久,就推出了一個Feature Pack,是可以在微軟的官方網站上免費下載的,其中就包含有TR1,同時還有MFC的新的界面庫,MFC的fans們早就笑得合不攏嘴了。這個Feature Pack安裝以后就可以直接在Visual Studio 2008中使用TR1。不過文檔需要單獨下載。

為什么說絕對不簡單呢?還是從Boost說起:

第一,Boost編譯時的時間占用和空間占用是絕對不簡單的。我的臺式機是扣肉的CPU加4G的內存,編譯了接近一個小時,而我另外一臺筆記本,是賽揚2.4G的CPU加1G的內存,編譯到半夜我睡一覺醒來它才完成工作。而硬盤上怎么也得準備7G的空間,編譯完成后,可以刪除D:\build-boost目錄,但是Boost庫占用的空間依然超過3G。

第二,再來說說學習的時間占用。Boost的文檔是寫得相當的好的,比微軟提供的TR1文檔強太多了,每一個功能的文檔都會說明它實現了什么功能,還會說明以前的標準庫有哪些不足,這對我這樣超級期待C++ 0x的人來說,是莫大的福音。其次,Boost的文檔都寫得循序漸漸,讀起來才像文章,而微軟的東西,到處都是超級連接跳來跳去像意大利面條。但是,有好的文檔就一定學起來簡單嗎?我初步數了一下,目前版本的Boost足足有80多個功能單元,如果我能夠每天讀一篇文檔的話,那也得接近三個月。就算是每天讀一篇文檔,也不是很現實的,因為有時我還要抽時間打打牌。就算我不打牌,也有一些比較大的功能單元,如Boost.Regex、Boost.Python,它們的內容都是足夠寫一本書的,讓我一天讀完也太有難度了吧。另外,很多庫需要專業知識做基礎,當我讀Accumulator和Math的文檔時,可能還得說“兄弟,把你的《統計學》和《高等數學》借給我翻翻”。

微軟的TR1文檔我已經學習得差不多了,只剩Random的文檔還沒有讀。而Boost的文檔,我今天讀了Accumulators。也許有人會奇怪,為什么不是Function、Bind、Lambda這些流行的呢,難道你是搞統計的?事實上不是這樣,因為那些流行的東西已經被大家寫爛了,讀中文的東西要方便得多,再就是按字母表排序Accumulators也是排在首位的嘛,我就按字母表慢慢讀下去算了。

讀了Accumulators的文檔,當然會有一些感想。首先就是感覺這的確是個好東西,設計得很優雅,用起來也很方便,當我熟悉了它的一些概念后,我就在想,以后搞統計分析方便了,不用再打開WPS表格對著課本編輯公式,不用再對著單元格輸入數據,輸一個數還得按一下方向鍵才能跳到另外一個單元格。如果能用自己寫的C++來搞統計分析,只用把所有的數據輸入到記事本,用命令行的管道輸入就可以了,而且自己寫程序搞統計分析倍有面子,比使用Analysis有面子多了。但是理想和現實還是有距離的,當我讀到它自帶的statistical accumulators有哪些時,我又失望了,我總不能只用它來求最大值最小值和平均值吧,對于方差分析、卡方檢驗、t檢驗、u檢驗它都沒有提供,當然,它的設計是很有彈性的,我可以自己擴充嘛。自己擴充……也不是不行,不過那個難度……,我還不如用WPS表格來對著單元格來編輯公式呢。

另外一個感想就是覺得Boost真的是有翻天覆地之能,顛覆了很多傳統的東西,比如我在看Accumulators文檔時看到的這樣的代碼:

accumulator_set < ? double ,?features < ?my_tail_variate_tag? > ? > ?acc(?tag::tail < left > ::cache_size? = ? 2 ?);

acc(?
1.2 ,?covariate1? = ?? 12 ?);

這時,我的人肉編譯就不靈光了,以前哪里見過這樣在傳遞參數的時候還帶名字的呢?不過,文檔中寫道,這叫命名參數,是由Boost.Parameter庫實現的功能。真的是又長見識了,看來Boost帶給C++0x的可能不僅僅只是庫上面的擴充,對語言特性可能也會有一些影響,比如Concept,比如右值引用。這些東西我現在也講不清楚,但不管怎么說,Boost讓我覺得它真是一個挖不完的大金礦,我們肯定能在里面找到一些新奇而有趣的東西。

兄弟們,加油,一起向Boost進軍吧!

Feedback

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-09-12 21:43 by 空明流轉
boost文檔雖然不錯,但是windows的文檔絕對不差。

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-09-12 21:45 by 空明流轉
boost的絕大多數庫的使用都是很方便的。少數幾個需要編譯的也就是稍微麻煩點。

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-09-12 22:08 by 海邊沫沫
@空明流轉
微軟的文檔我還讀得懂,不過它的Reference讀起來確實要費點勁,Knowledge Base要好讀一些,不過Boost的更好。

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-09-13 01:46 by 矩陣操作
TR1還可以,畢竟VC9帶了部分,boost就算了吧,太大了...........

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-09-13 12:51 by 做事須嚴謹
cd D:\boost_1_36_0
copy tools\jam\src\bin.ntx86\bjam.exe .
bjam --build-dir = " D:\build-boost " --toolset = msvc --build-type = complete stage
=============================
上面的這些有些問題,請做事情嚴謹點行不行?
copy tools\jam\src\bin.ntx86\bjam.exe .這一行壓根就不存在這個目錄
bjam --build-dir = " D:\build-boost " --toolset = msvc --build-type = complete stage 根本執行就錯了," D:\build-boost " 為什么前后有空格?然后還有那么多莫名其妙的空格

你不是說抄來的,怎么抄都抄成這樣了?
把那些莫名其妙的空格去掉后,就可以執行了。
如果你不能確定你寫的是正確的,就不要發出來,誤導別人了。

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-09-13 18:01 by 海邊沫沫
樓上的,我早就說了叫你不要復制嘛,這些空格是該博客系統自己添加的。

至于你說不存在這個目錄,那就冤枉我了,請看下面截圖:

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-09-24 23:46 by egmkang
Boost庫感覺還是有一些暴力,太大了.

# re: 痛下決心苦學 TR1 和 Boost  回復  更多評論   

2008-12-14 12:48 by cxh
這個東西關鍵是學習了以后,能夠在自己開發的項目中使用才是硬道理。如果這些東西在項目上使用不上,也就是花瓶而已。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美在线aaa| 欧美日韩午夜| 亚洲欧洲另类国产综合| 久久免费精品视频| 免费美女久久99| 亚洲啪啪91| 在线视频亚洲欧美| 久久成人精品| 欧美黄色影院| 国产精品久久久一本精品| 国产日韩亚洲欧美综合| 在线观看国产精品淫| 1204国产成人精品视频| 亚洲三级影院| 欧美一区亚洲二区| 久久久综合精品| 91久久黄色| 午夜精品99久久免费| 先锋亚洲精品| 欧美日韩高清在线一区| 国产三级欧美三级| 日韩视频一区二区三区在线播放| 亚洲无限av看| 蜜月aⅴ免费一区二区三区| 亚洲精品视频一区二区三区| 午夜视频久久久久久| 欧美高清自拍一区| 国产一区在线免费观看| 亚洲深夜福利在线| 欧美v国产在线一区二区三区| 一区二区三区三区在线| 美国十次了思思久久精品导航| 国产精品捆绑调教| 亚洲免费高清| 蜜臀久久99精品久久久画质超高清| 日韩一级在线| 欧美成人精品h版在线观看| 国产三区精品| 亚洲欧美日韩在线观看a三区| 亚洲第一毛片| 久久久久久久久久久久久女国产乱| 欧美午夜不卡影院在线观看完整版免费 | 久久成人精品一区二区三区| 久久综合久久久久88| 国产区精品在线观看| 亚洲性图久久| 亚洲精选一区| 亚洲素人在线| 榴莲视频成人在线观看| 亚洲网站在线看| 美国十次成人| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲伊人观看| 亚洲电影专区| av成人动漫| 欧美大片18| 欧美一区二区视频在线观看| 欧美日韩一区二区在线播放| 亚洲国产精品成人综合| 久久国产精品一区二区三区四区 | 亚洲欧洲精品一区二区三区| 久久久人成影片一区二区三区| 亚洲小说区图片区| 国产精品嫩草99av在线| 亚洲欧美日韩国产另类专区| 一本大道久久精品懂色aⅴ| 欧美日韩国产成人在线91| 一本久久青青| 亚洲私人影院| 国产手机视频一区二区| 久久久水蜜桃| 久久综合狠狠综合久久综合88| 极品裸体白嫩激情啪啪国产精品| 久久久一二三| 免费国产自线拍一欧美视频| 亚洲免费av观看| 一区二区精品国产| 国产日产欧美a一级在线| 浪潮色综合久久天堂| 欧美成人免费一级人片100| 中日韩在线视频| 欧美有码视频| 亚洲精品一二三| 亚洲一区二区三区中文字幕在线 | 日韩亚洲一区在线播放| 日韩亚洲综合在线| 国产精品午夜久久| 麻豆成人在线观看| 欧美日韩福利在线观看| 性色av一区二区怡红| 久久精品国产综合| 99国产精品久久久久老师| 亚洲视频一二三| 在线观看日韩av先锋影音电影院| 欧美成人在线网站| 国产精品久久久久9999| 99在线视频精品| 久久爱另类一区二区小说| 午夜激情久久久| 亚洲激情女人| 亚洲网站啪啪| 亚洲精品一区二区三区樱花| 一区二区三区.www| 在线观看精品一区| 亚洲一区视频在线| 亚洲精品日产精品乱码不卡| 午夜在线精品| 亚洲一区二区三区在线观看视频| 欧美一区二区成人6969| 一本色道久久综合狠狠躁篇的优点 | 久久中文字幕导航| 欧美三级电影网| 欧美成人a∨高清免费观看| 国产精品一二一区| 日韩一级免费| 日韩一区二区福利| 久久一区二区三区四区| 久久av二区| 国产精品视频大全| 一本色道久久88精品综合| 亚洲精品影院| 免费短视频成人日韩| 久久一区二区三区超碰国产精品| 国产精品激情| 亚洲性夜色噜噜噜7777| 亚洲一区国产| 欧美日韩一区免费| 亚洲九九爱视频| 9l国产精品久久久久麻豆| 欧美成人小视频| 亚洲欧洲午夜| 一区二区三区黄色| 欧美日韩一区二区三| 亚洲国产精品久久久久久女王| 在线观看视频日韩| 美女国内精品自产拍在线播放| 久久久久高清| 伊人婷婷久久| 欧美丰满少妇xxxbbb| 亚洲国产成人精品视频| 亚洲精品乱码| 欧美了一区在线观看| 日韩视频在线观看免费| 亚洲视频在线观看免费| 国产精品美女久久福利网站| 亚洲一区图片| 久久人人爽爽爽人久久久| 一区精品在线| 欧美精品久久久久久久| 日韩亚洲一区二区| 欧美亚洲免费在线| 红桃视频亚洲| 欧美激情aⅴ一区二区三区| 亚洲乱码精品一二三四区日韩在线 | 久久精品国产久精国产思思| 久久综合伊人77777蜜臀| 一区二区三区精品| 国产精品女人毛片| 欧美一区二区精品在线| 美女视频黄a大片欧美| 亚洲精品一区在线观看| 国产精品美女久久久久久久| 午夜欧美精品| 亚洲国产综合在线| 欧美一区二视频| 亚洲国产婷婷综合在线精品| 欧美日韩视频第一区| 欧美一区二区高清在线观看| 美女视频黄 久久| 亚洲午夜视频在线观看| 韩国精品久久久999| 欧美精品日韩三级| 性感少妇一区| 亚洲乱码国产乱码精品精| 久久精品国产精品亚洲| 亚洲精品一区久久久久久| 国产视频在线一区二区| 欧美日产国产成人免费图片| 欧美一区二区福利在线| 亚洲人成在线影院| 久久一区二区三区四区| 亚洲无玛一区| 亚洲伦理在线免费看| 国产区精品在线观看| 欧美日韩免费视频| 男女激情视频一区| 久久精品国产99精品国产亚洲性色 | 欧美天堂亚洲电影院在线播放| 欧美在线免费观看| 一本久久青青| 欧美激情免费在线| 久久久夜夜夜| 久久精品电影| 欧美一级视频精品观看| 一区二区三区高清不卡| 91久久香蕉国产日韩欧美9色| 国产日韩在线看片| 国产精品日韩电影| 欧美日韩在线观看视频| 欧美成在线视频|