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

posts - 18,  comments - 104,  trackbacks - 0

剛注冊好cppblog的用戶,這算是處女作了。 最近在學(xué)習(xí)boost::lambda, 分享下學(xué)習(xí)心得,共同進(jìn)步。

當(dāng)然這篇不是講boost::lambda的用法的,如有有人感興趣,可以參照:http://www.boost.org/doc/libs/1_38_0/doc/html/lambda.html

boost::lambda很復(fù)雜,一兩句話也說不清楚,我盡力描述的簡單一點,慢慢增加難度。

對我來說,boost::lambda省了不少事,我是喜歡stl algorithm的,現(xiàn)在基本上除非特殊情況,程序里面都不出現(xiàn)循環(huán)了。用for_each, transform 等等都可以搞定,否則,就要考慮數(shù)據(jù)結(jié)構(gòu)和算法是不是有問題了。

但是問題在于每次用for_each的時候,都要定義一個仿函數(shù)(Modern C++ Design 這么叫的),麻煩,程序看起來也不怎么優(yōu)雅順暢,總要停下來去看那個仿函數(shù)到底干什么了,寫的時候還要想是不是要泛化,很頭痛。有了boost::lambda,就爽多了。看起來一目了然,寫起來簡單明了,不用關(guān)心類型。(是不是搞推銷的?)

言歸正傳吧。

比如下面這段代碼:

 1 vector<int> v;
 2 v.push_back(12);
 3 v.push_back(1342);
 4 v.push_back(23);
 5 
 6 struct OP
 7 {
 8     void operator()(int &i)
 9     {
10         i = 3;
11     }
12 };
13 
14 for_each(v.begin(), v.end(), OP());

夠簡單吧,把整個容器的值都改成3. 看到那個OP了吧,很簡單的一件事情,非要讓人寫這么個struct,要是寫成class,還要public,更郁悶。

看看用了boost::lambda以后的效果吧。
1 vector<int> v;
2 v.push_back(12);
3 v.push_back(1342);
4 v.push_back(23);
5 
6 for_each(v.begin(), v.end(), _1 = 3);
7 

比不用lambda整整少了一個OP定義呀,因為 string("OP()").length() == string("_1=3").length() .

那么,怎么才能達(dá)到這個效果呢,在這里,先假設(shè)我們只用int類型,關(guān)于泛化,下一篇再說,一次吃多了消化不良的。

熟悉for_each的都知道,for_each的第3個參數(shù)是個函數(shù)對象(我不用指針抱歉),注意區(qū)分仿函數(shù)和函數(shù)對象,仿函數(shù)是個類型,函數(shù)對象是個對象。

那么也就是說  _1 = 3 的結(jié)果應(yīng)該是個函數(shù)對象,而且是個一元函數(shù)對象(不了解的去看for_each實現(xiàn))。知道了這個,很容易寫個大概:

 1 struct op
 2 {
 3     ??? operator()(int& i)
 4     {
 5         i = ???;
 6     }
 7 };
 8 
 9 struct place_holder
10 {
11     op operator=(int i)
12     {
13         return op???;
14     }
15 };
16 
17 place_holder _1;
18 
19 for_each(v.begin(), v.end(), _1 = 3);

???不是亂碼,這里只是暫時不知道寫什么。
我說過,這篇里面類型都是int,但是那個3怎么處理呢,明顯要保存的仿函數(shù)里面去么,所以上面的代碼進(jìn)一步修改,
個OP里面增加變量,來保存3,函數(shù)返回值現(xiàn)在不重要,就寫成int吧,以后有問題再說。
于是代碼變成:

 1 struct op
 2 {
 3     op(int i)
 4         : _i(i)
 5     {}
 6 
 7     int _i;
 8 
 9     int operator()(int& i)
10     {
11         i = _i;
12     }
13 };
14 
15 struct place_holder
16 {
17     op operator=(int i)
18     {
19         return op(i)
20     }
21 };
22 
23 place_holder _1;
24 
25 for_each(v.begin(), v.end(), _1 = 3);

問題解決。

看到這里,整個程序已經(jīng)可以執(zhí)行了。把容器的值改成3,沒問題吧。

整片文章都在一個假設(shè)之下,就是只用int,那要是不用int呢,情況就復(fù)雜一點了,下篇再討論。 如果熟悉template的話,下篇很容易,否則,復(fù)習(xí)咯。
posted on 2009-02-19 19:19 尹東斐 閱讀(1349) 評論(0)  編輯 收藏 引用 所屬分類: 深入探索 boost::lambda 系列
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(4)

隨筆檔案

文章分類

文章檔案

相冊

好友博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲啪啪91| 久久久亚洲国产美女国产盗摄| 欧美高清视频www夜色资源网| 欧美在线短视频| 亚洲午夜成aⅴ人片| 99在线热播精品免费| 亚洲最新色图| 亚洲欧美日韩中文播放| 欧美亚洲免费电影| 久久久久久免费| 欧美噜噜久久久xxx| 国产精品入口福利| 在线高清一区| 一区二区精品在线观看| 欧美亚洲一区二区在线观看| 亚洲国产岛国毛片在线| 日韩一级成人av| 一本色道久久综合狠狠躁篇的优点 | 99在线精品观看| 久久se精品一区精品二区| 欧美gay视频| 国产精品自拍在线| 91久久精品国产91性色| 午夜精品久久久久久久99樱桃 | 久久这里只精品最新地址| 亚洲国产精品久久久久秋霞不卡| 亚洲无人区一区| 欧美chengren| 国产一区二区三区成人欧美日韩在线观看 | 欧美激情一级片一区二区| 国产精品美女久久久久aⅴ国产馆| 国内精品免费在线观看| 亚洲一区二区三区精品在线观看| 裸体女人亚洲精品一区| 99精品国产在热久久| 欧美一级在线视频| 欧美日韩国产区| 在线观看三级视频欧美| 久久gogo国模裸体人体| 亚洲毛片在线| 欧美成ee人免费视频| 国产综合在线视频| 欧美一级在线视频| 9久re热视频在线精品| 久久综合色天天久久综合图片| 国产毛片一区二区| 亚洲一本大道在线| 亚洲人午夜精品| 欧美成人黑人xx视频免费观看| 国产亚洲欧美一区在线观看 | 香蕉久久夜色| 中文在线一区| 欧美日韩免费视频| 99re亚洲国产精品| 亚洲国产日韩欧美一区二区三区| 久久精品九九| 经典三级久久| 猛男gaygay欧美视频| 亚洲视频专区在线| 亚洲一区综合| 亚洲视频二区| 国产精品一级二级三级| 亚洲欧美一区二区三区久久 | 欧美激情黄色片| 亚洲国产视频直播| 亚洲国产成人久久| 欧美精品二区| 亚洲一区二区三区三| 亚洲新中文字幕| 国产一区二区成人久久免费影院| 欧美在线视频免费观看| 欧美一级视频免费在线观看| 精品成人a区在线观看| 免费成人av在线看| 欧美韩国日本综合| 亚洲综合精品| 欧美一区二区三区播放老司机 | 一区二区国产日产| 一本大道久久a久久精二百| 国产精品a久久久久久| 欧美一激情一区二区三区| 先锋影音国产精品| 在线成人av.com| 亚洲国产欧美日韩| 国产精品vvv| 久久久久国产一区二区三区四区 | 久久爱www久久做| 久久精品亚洲国产奇米99| 最近看过的日韩成人| 99在线精品免费视频九九视| 国产区日韩欧美| 欧美激情1区| 国产精品乱人伦一区二区| 久久精品视频免费观看| 女人色偷偷aa久久天堂| 午夜精品影院在线观看| 久久亚洲综合色| 亚洲欧美国产精品桃花| 久久只精品国产| 亚洲曰本av电影| 久久躁日日躁aaaaxxxx| 亚洲综合精品自拍| 免费观看亚洲视频大全| 亚洲欧美另类国产| 麻豆久久婷婷| 久久国内精品自在自线400部| 欧美粗暴jizz性欧美20| 欧美一区二区高清在线观看| 欧美wwwwww| 久久久久久一区二区三区| 欧美日韩在线观看一区二区| 免费观看日韩| 国产亚洲欧美日韩日本| 亚洲桃花岛网站| 欧美不卡福利| 激情久久五月天| 亚洲午夜成aⅴ人片| 亚洲国产欧美日韩精品| 亚洲欧美日本日韩| 亚洲视频综合在线| 欧美国产国产综合| 欧美成人免费播放| 韩日精品中文字幕| 亚洲欧美日韩成人高清在线一区| 夜色激情一区二区| 欧美国产日本韩| 亚洲福利国产| 亚洲国产欧美另类丝袜| 久久蜜桃香蕉精品一区二区三区| 久久国产福利| 国产视频观看一区| 欧美亚洲三级| 久久久人成影片一区二区三区观看| 国产精品久久波多野结衣| 一级日韩一区在线观看| 亚洲午夜在线观看| 国产精品久久久久影院色老大| 一区二区三区四区国产| 亚洲综合色视频| 国产嫩草影院久久久久| 亚洲欧美网站| 久久免费高清| 亚洲国产精品第一区二区三区| 久久最新视频| 亚洲黄色成人| 亚洲一本大道在线| 国产精品日韩在线观看| 性欧美1819sex性高清| 久久九九免费| 亚洲国产精品毛片| 欧美日韩成人综合在线一区二区| 亚洲精品永久免费| 亚洲欧美日韩精品一区二区| 国产欧美日韩精品一区| 久久久97精品| 亚洲精品国产系列| 亚洲免费一在线| 国产有码在线一区二区视频| 久久视频国产精品免费视频在线| 亚洲电影免费观看高清完整版在线观看| 亚洲国产免费看| 欧美色另类天堂2015| 性欧美办公室18xxxxhd| 亚洲第一在线视频| 亚洲欧美日韩一区二区| 国产亚洲成年网址在线观看| 久久青草久久| 制服丝袜亚洲播放| 麻豆精品网站| 亚洲影音先锋| 亚洲高清激情| 国产精品亚洲片夜色在线| 久久一二三区| 亚洲一区二区三区免费在线观看 | 亚洲激情一区二区| 欧美精品二区三区四区免费看视频| 亚洲视频在线观看| 欧美国产日韩精品免费观看| 亚洲综合好骚| 亚洲另类在线视频| 国产日韩在线播放| 欧美日韩午夜精品| 狂野欧美一区| 亚洲第一色在线| 久久久久久伊人| 亚洲激情国产精品| 久久er精品视频| 99热免费精品| 在线不卡中文字幕| 国产精品久久久久久久午夜片 | 久久久噜噜噜久久| 在线亚洲+欧美+日本专区| 国产日韩欧美一区二区| 欧美精品日韩综合在线| 久久久久九九视频| 亚洲欧美成人| 在线一区亚洲| 亚洲精品欧美一区二区三区| 欧美多人爱爱视频网站| 久久免费视频在线观看|