不過是用Ms Tools的一個(gè)民工..
人恒過,然后能改。困于心,衡于慮,而后作。
C++博客
|
首頁
|
發(fā)新隨筆
|
發(fā)新文章
|
聯(lián)系
|
聚合
|
管理
mem_fun And mem_fun_ref
怎么對(duì)容器中的所有對(duì)象都進(jìn)行同一個(gè)操作?我們可能首先想到的是用循環(huán)來實(shí)現(xiàn)。
比如有如下的一個(gè)類:
class
ClxECS
{
public
:
int
DoSomething()
{
//
這里以輸出一句話來代替具體的操作
cout
<<
"
Output from method DoSomething!
"
<<
endl;
return
0
;
}
;
}
;
現(xiàn)在定義如下一個(gè)vector:
vector
<
ClxECS
*>
vECS;
for
(
int
i
=
0
; i
<
13
; i
++
)
{
ClxECS
*
pECS
=
new
ClxECS;
vECS.push_back(pECS);
}
for
(
int
i
=
0
; i
<
vECS.size(); i
++
)
vECS.at(i)
->
DoSomething();
當(dāng)然,我們也可以用iterator:
for
(vector
<
ClxECS
*>
::iterator it
=
vECS.begin(); it
!=
vECS.end();
++
it)
(
*
it)
->
DoSomething();
但是,有很多C++的高手和牛人們都會(huì)給我們一個(gè)忠告,那就是:在處理STL里面的容器的時(shí)候,盡量不要自己寫循環(huán)。
那么,我們就只好用STL算法里面的for_each了。
首先,添加如下一個(gè)函數(shù):
int
DoSomething(ClxECS
*
pECS)
{
return
pECS
->
DoSomething();
}
然后就可以用for_each來實(shí)現(xiàn)我們想要的功能:
for_each(vECS.begin(), vECS.end(),
&
DoSomething);
說了半天,似乎跟mem_fun和mem_fun_ref沒有什么關(guān)系。其實(shí),說那么多都是為了引出mem_fun和mem_fun_ref。在用for_each的時(shí)候,如果我們不添加上面的那個(gè)函數(shù),該怎么辦呢?
這個(gè)時(shí)候就該mem_fun和mem_fun_ref隆重登場(chǎng)了。用如下這一行代碼就行了:
for_each(vECS.begin(), vECS.end(), mem_fun(
&
ClxECS::DoSomething));
不用我多說,大家應(yīng)該已經(jīng)明白mem_fun是干什么和該怎么用的了。
mem_fun_ref的作用和用法跟mem_fun一樣,唯一的不同就是:當(dāng)容器中存放的是對(duì)象實(shí)體的時(shí)候用mem_fun_ref,當(dāng)容器中存放的是對(duì)象的指針的時(shí)候用mem_fun。
[轉(zhuǎn)載內(nèi)容]
發(fā)表于 2008-07-04 09:13
IssAc
閱讀(158)
評(píng)論(0)
編輯
收藏
引用
所屬分類:
STL
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
隨筆:5 文章:28 評(píng)論:1 引用:0
<
2025年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
公告
Blog里的內(nèi)容如果沒有注明為轉(zhuǎn)載,就是原創(chuàng)文章,需要轉(zhuǎn)載的朋友請(qǐng)注明出處。文章中如有錯(cuò)誤,請(qǐng)指出。轉(zhuǎn)載內(nèi)容如果有侵權(quán)行為,請(qǐng)與我聯(lián)系,----issac_asimoy@qq.com。
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
(5)
Heart(3)
(rss)
Interesting(2)
(rss)
UML
(rss)
隨筆檔案
(5)
2008年8月 (1)
2008年7月 (3)
2008年6月 (1)
文章分類
(28)
Boost
(rss)
C/C++(4)
(rss)
Data Structure and Algorithm(2)
(rss)
Disquisition
(rss)
Exam Problem(5)
(rss)
Exercise(6)
(rss)
IDE and Tools(1)
(rss)
Mfc(4)
(rss)
Readset
(rss)
Sdk(5)
(rss)
STL(1)
(rss)
文章檔案
(28)
2008年8月 (5)
2008年7月 (15)
2008年6月 (8)
相冊(cè)
Temp
My World
≈靜侯輪囘≈
Study Web
最新隨筆
1.?個(gè)人收藏的編程下載資源全部公布
2.?不同地區(qū)技術(shù)人才需求量的統(tǒng)計(jì)和分析
3.?失意時(shí)須看的十大圖片《組圖》
4.?作為男人你必須知道的幾件事情
5.?逆境轉(zhuǎn)心境
搜索
積分與排名
積分 - 8342
排名 - 1281
最新評(píng)論
1.?re: 作為男人你必須知道的幾件事情
這個(gè)怎么看 都是做個(gè)好人的 基本準(zhǔn)則啊!
--Corner Zhang
閱讀排行榜
1.?作為男人你必須知道的幾件事情(490)
2.?個(gè)人收藏的編程下載資源全部公布(484)
3.?不同地區(qū)技術(shù)人才需求量的統(tǒng)計(jì)和分析(364)
4.?逆境轉(zhuǎn)心境(341)
5.?失意時(shí)須看的十大圖片《組圖》(302)
評(píng)論排行榜
1.?作為男人你必須知道的幾件事情(1)
2.?失意時(shí)須看的十大圖片《組圖》(0)
3.?不同地區(qū)技術(shù)人才需求量的統(tǒng)計(jì)和分析(0)
4.?個(gè)人收藏的編程下載資源全部公布(0)
5.?逆境轉(zhuǎn)心境(0)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 IssAc
精品国产青草久久久久福利
|
97超级碰碰碰久久久久
|
久久99精品国产99久久6
|
久久天天躁狠狠躁夜夜2020老熟妇
|
久久国产精品免费一区二区三区
|
九九久久精品国产
|
亚洲欧美另类日本久久国产真实乱对白
|
久久久噜噜噜久久中文字幕色伊伊
|
亚洲午夜福利精品久久
|
性欧美大战久久久久久久久
|
久久国产成人精品麻豆
|
亚洲国产成人精品久久久国产成人一区二区三区综
|
成人久久综合网
|
日日狠狠久久偷偷色综合免费
|
99久久国产精品免费一区二区
|
91精品国产高清久久久久久91
|
久久天天躁夜夜躁狠狠躁2022
|
久久se精品一区二区
|
精品国产乱码久久久久久呢
|
天天综合久久久网
|
国产亚洲欧美精品久久久
|
欧美亚洲国产精品久久高清
|
99久久精品免费
|
亚洲天堂久久精品
|
国产精品久久久久9999高清
|
亚洲午夜久久久久妓女影院
|
久久精品嫩草影院
|
性做久久久久久久
|
国产精品久久久久久久久久影院
|
91久久精品视频
|
久久福利青草精品资源站
|
亚洲AV无码久久精品狠狠爱浪潮
|
亚洲?V乱码久久精品蜜桃
|
国内精品久久久久影院一蜜桃
|
亚洲AV无码久久
|
色婷婷久久综合中文久久蜜桃av
|
少妇久久久久久被弄到高潮
|
久久99九九国产免费看小说
|
性欧美大战久久久久久久
|
久久亚洲精品国产亚洲老地址
|
国内精品久久久久久久久电影网
|