青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開發(fā)(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 659814
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統(tǒng)C++網(wǎng)絡庫
asio 成為C++首選網(wǎng)絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發(fā)送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11060)
2.?SVN中邪惡的replace(10984)
3.?VS2005編譯libevent(10430)
4.?混音算法的學習與研究(10237)
5.?C調(diào)用lua腳本的效率測試(9020)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優(yōu)于指針(17)
5.?ACE與ASIO之間關(guān)于Socket編程的比較(16)
用 (*it).m 還是 it->m
用 (*it).m 還是 it->m
摘自《Extended STL》
標準庫要求,所有值類型為聚合類型的迭代器必須支持指針成員選取運算符(operator ->()),下面是使用該運算符的示例代碼:
struct X
{
int x;
};
some_iterator<X> si = . . .
some_iterator<X> si2 = . . .
some_iterator<X> end = . . .
if( end != si &&
end != si2)
{
si->x = si2->x;
}
標準(C++-03: 24.1.1;1)要求,對一個迭代器應用指針成員選取運算符,在語義上等同于先對其應用解引用運算符,再應用點號成員選取運算符,即it->m與(*it).m等效。
可惜,使用該運算符會遇上麻煩。
假設我們有一個容器類型C,它的實例保存智能指針類型P的實例,P用于管理對象生存期。P上定義了一個release()方法用于提早釋放對象。進一步假設,被P管理的類型T上也定義了一個release()方法。在下面代碼片斷中,我們希望通過該容器的迭代器類型I的一個實例,調(diào)用T::release()方法:
C cont = . . .
I it = cont.begin();
it->release();
不幸的是,這段代碼調(diào)用的不是T::release()方法,它調(diào)用的是P::release()方法,從而銷毀了T的實例。當我們再次使用cont這個容器的時候,就可能遇到各種奇怪的問題,以下代碼才是真正實現(xiàn)我們想法的代碼:
C cont = . . .
I it = cont.begin();
it->->release();
可是C++并不支持這樣的語句,且理由充分。(想象一下,如果C++支持這樣的語句,"模糊C++代碼"大賽上,會有多少參賽代碼,爭著在一條語句中塞進最多的operator->()調(diào)用!)
為使C++滿足我們的想法,我們必須放棄成員選取運算符而轉(zhuǎn)用解引用運算符,就像以下代碼示例中一樣:
C cont = . . .
I it = cont.begin();
(*it)->release();
這是迭代器語法中惱人的小缺點。
在迭代器中支持指針成員選取運算符,沒什么實質(zhì)的意義,而僅僅是語法糖。我認為標準中將這規(guī)定為迭代器概念的一個特性是嚴重的錯誤。在我的日常工作中,除了僅有幾個特例外,我完全避免使用迭代器的指針成員選取運算符,而使用解引用和點號成員選取運算符。我建議你也這么做。
Tip: Prefer iterator dereference and the dot member selection operator ((*it).m) over the pointer member selection operator (it->m).
提示: 使用解引用及點號成員選擇運算符((*it).m)代替指針成員選擇運算符(it->m)。
(轉(zhuǎn)載請注明來源于金慶的專欄)
posted on 2008-04-24 10:16
金慶
閱讀(1977)
評論(5)
編輯
收藏
引用
所屬分類:
1. C/C++
評論
#
re: 用 (*it).m 還是 it->m[未登錄]
2008-04-24 11:57
heroboy
it.operator->()->operator->()->Release();
所以,boost里面專門做個一個放指針的容器
回復
更多評論
#
re: 用 (*it).m 還是 it->m
2008-04-24 17:11
王曉軒
的確是語法糖,為了使迭代器更形似指針而設的吧~~
回復
更多評論
#
re: 用 (*it).m 還是 it->m
2008-05-06 09:11
不懂
我更希望是容器釋放指針
cont.delete(it);
回復
更多評論
#
re: 用 (*it).m 還是 it->m
2008-05-18 04:54
批
it->->release(); 這種用法很好么?
(*it)->release(); 這種用法惱人么?
樓主犯昏了吧....
回復
更多評論
#
re: 用 (*it).m 還是 it->m[未登錄]
2008-08-27 11:13
raof01
(*it).m;
it->m;
與
(*it)->m;
相同嗎?
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內(nèi)存錯誤
std::thread 中的異常會丟失調(diào)用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標記
網(wǎng)站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美日韩中文字幕
|
亚洲午夜精品网
|
在线观看视频一区二区
|
久久精品视频亚洲
|
久久久久一区
|
亚洲最新视频在线播放
|
久久午夜影视
|
国产亚洲欧美日韩精品
|
亚洲一区二区黄色
|
亚洲欧美成aⅴ人在线观看
|
欧美精品二区三区四区免费看视频
|
国产精品嫩草影院一区二区
|
亚洲美女av电影
|
欧美电影在线免费观看网站
|
欧美在线播放高清精品
|
国产精品三区www17con
|
亚洲线精品一区二区三区八戒
|
亚洲社区在线观看
|
国产精品久久久久久久久久免费看
|
午夜精品久久久久久久久久久
|
欧美成人一区二区三区在线观看
|
欧美精品一区二区三区四区
|
在线观看欧美成人
|
夜夜嗨av色一区二区不卡
|
国产亚洲精品美女
|
亚洲精品一级
|
欧美日韩亚洲一区三区
|
一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视
|
这里只有精品电影
|
日韩一级不卡
|
欧美视频一区二区三区
|
久久色在线播放
|
欧美性感一类影片在线播放
|
亚洲精品影院在线观看
|
午夜在线电影亚洲一区
|
国产亚洲成年网址在线观看
|
久久久久国产精品麻豆ai换脸
|
欧美成人精品三级在线观看
|
久久阴道视频
|
亚洲精品一区在线观看
|
欧美怡红院视频一区二区三区
|
亚洲美女视频网
|
久久综合久久88
|
久久久www成人免费精品
|
国产精品二区在线
|
亚洲精品乱码久久久久久蜜桃91
|
欧美视频久久
|
欧美va亚洲va国产综合
|
欧美午夜一区二区三区免费大片
|
久久一区激情
|
免费在线视频一区
|
中文欧美日韩
|
亚洲欧美成人一区二区在线电影
|
亚洲精品视频一区
|
亚洲欧美影院
|
午夜一级久久
|
欧美ab在线视频
|
欧美国产日韩一区二区
|
欧美三级视频在线
|
亚洲精品一区二区在线
|
亚洲美女av网站
|
欧美丰满高潮xxxx喷水动漫
|
午夜精品理论片
|
久久综合中文字幕
|
免费成人高清在线视频
|
国产精品每日更新
|
亚洲性视频网址
|
亚洲人成毛片在线播放
|
亚洲影院色无极综合
|
亚洲人成7777
|
欧美激情亚洲一区
|
最新中文字幕一区二区三区
|
国产丝袜一区二区
|
欧美诱惑福利视频
|
欧美成人久久
|
亚洲少妇最新在线视频
|
国产精品久久久久影院亚瑟
|
亚洲成人中文
|
国产视频亚洲精品
|
久久久国际精品
|
欧美伊人久久久久久久久影院
|
欧美国产日韩一区二区在线观看
|
欧美二区在线
|
av成人福利
|
国产手机视频一区二区
|
久久人人爽国产
|
99国产精品一区
|
久久久www
|
亚洲乱码国产乱码精品精天堂
|
国产精品第一区
|
久久国产精品99久久久久久老狼
|
亚洲一区二区成人
|
国产日韩欧美在线
|
欧美电影美腿模特1979在线看
|
亚洲免费av片
|
久久亚洲视频
|
亚洲一卡二卡三卡四卡五卡
|
国产综合亚洲精品一区二
|
午夜在线一区
|
欧美国产日产韩国视频
|
亚洲欧美国产77777
|
欧美视频免费在线
|
久久久999精品免费
|
99精品视频免费全部在线
|
久久精品导航
|
亚洲一区二区动漫
|
91久久夜色精品国产九色
|
国产精品美女午夜av
|
欧美高清不卡
|
久久精品午夜
|
亚洲在线成人
|
日韩亚洲欧美高清
|
欧美国产日本高清在线
|
性欧美大战久久久久久久免费观看
|
亚洲美女一区
|
精品1区2区3区4区
|
久久久久综合
|
蜜桃久久精品一区二区
|
午夜精品电影
|
日韩午夜激情av
|
国产精品区一区二区三区
|
欧美成人午夜77777
|
久久精品女人的天堂av
|
亚洲欧美日韩成人
|
中日韩午夜理伦电影免费
|
欧美第一黄网免费网站
|
久久久久一区二区三区
|
欧美一区二区网站
|
午夜日韩激情
|
香蕉免费一区二区三区在线观看
|
欧美一二三区在线观看
|
亚洲影音一区
|
国产一区二区欧美日韩
|
国产精品羞羞答答xxdd
|
欧美性大战久久久久久久
|
欧美日韩亚洲三区
|
欧美精品成人在线
|
欧美精品成人
|
欧美日韩国产色综合一二三四
|
亚洲综合导航
|
午夜精品久久久久久久久久久久久
|
国产欧美日韩精品专区
|
免费观看成人鲁鲁鲁鲁鲁视频
|
久久福利一区
|
久久成人亚洲
|
久久九九全国免费精品观看
|
久久国产夜色精品鲁鲁99
|
久久精品99国产精品日本
|
久久精品视频免费播放
|
久久香蕉精品
|
欧美大片专区
|
国产精品国色综合久久
|
国产精品人人做人人爽
|
国产一区二区三区四区五区美女
|
国产三级精品在线不卡
|
一区在线电影
|
亚洲日本欧美在线
|
亚洲一区激情
|
久久精品国产77777蜜臀
|
久久久噜噜噜久久中文字免
|
欧美va亚洲va日韩∨a综合色
|
亚洲电影免费在线观看
|
久久男人av资源网站
|
欧美成人网在线
|
日韩亚洲欧美中文三级
|
午夜在线不卡
|
欧美va天堂va视频va在线
|
欧美日韩免费看
|
国产精品一区视频
|
国产精品日韩精品欧美在线
|
国模大胆一区二区三区
|
亚洲精品在线观看免费
|
亚洲欧美影音先锋
|
欧美成人免费小视频
|
制服丝袜亚洲播放
|
久久精品国产综合
|
欧美日韩在线观看一区二区三区
|
亚洲国产老妈
|
亚洲国产专区校园欧美
|
在线视频精品一
|
久久这里只精品最新地址
|
欧美片第1页综合
|
国产精品区一区
|
亚洲国产一区二区三区青草影视
|
亚洲视频一区二区
|
免费在线观看日韩欧美
|
夜夜爽av福利精品导航
|
亚洲国产成人av在线
|
午夜精品久久
|
欧美日韩a区
|
在线观看欧美激情
|
欧美一区二区视频在线观看
|
最新中文字幕一区二区三区
|
欧美在线一区二区
|
国产精品久久久久久久久搜平片
|
亚洲第一在线综合在线
|
亚洲精品女av网站
|
久久综合色影院
|
91久久久久久国产精品
|
久久精品一区四区
|