青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(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)
相冊
公告照片
搜索
積分與排名
積分 - 663336
排名 - 24
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11078)
2.?SVN中邪惡的replace(11003)
3.?VS2005編譯libevent(10462)
4.?混音算法的學習與研究(10265)
5.?C調用lua腳本的效率測試(9027)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于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的一個實例,調用T::release()方法:
C cont = . . .
I it = cont.begin();
it->release();
不幸的是,這段代碼調用的不是T::release()方法,它調用的是P::release()方法,從而銷毀了T的實例。當我們再次使用cont這個容器的時候,就可能遇到各種奇怪的問題,以下代碼才是真正實現我們想法的代碼:
C cont = . . .
I it = cont.begin();
it->->release();
可是C++并不支持這樣的語句,且理由充分。(想象一下,如果C++支持這樣的語句,"模糊C++代碼"大賽上,會有多少參賽代碼,爭著在一條語句中塞進最多的operator->()調用!)
為使C++滿足我們的想法,我們必須放棄成員選取運算符而轉用解引用運算符,就像以下代碼示例中一樣:
C cont = . . .
I it = cont.begin();
(*it)->release();
這是迭代器語法中惱人的小缺點。
在迭代器中支持指針成員選取運算符,沒什么實質的意義,而僅僅是語法糖。我認為標準中將這規定為迭代器概念的一個特性是嚴重的錯誤。在我的日常工作中,除了僅有幾個特例外,我完全避免使用迭代器的指針成員選取運算符,而使用解引用和點號成員選取運算符。我建議你也這么做。
Tip: Prefer iterator dereference and the dot member selection operator ((*it).m) over the pointer member selection operator (it->m).
提示: 使用解引用及點號成員選擇運算符((*it).m)代替指針成員選擇運算符(it->m)。
(轉載請注明來源于金慶的專欄)
posted on 2008-04-24 10:16
金慶
閱讀(1988)
評論(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;
相同嗎?
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
相關文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內存錯誤
std::thread 中的異常會丟失調用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標記
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美激情精品久久久久久蜜臀
|
●精品国产综合乱码久久久久
|
亚洲视频在线观看视频
|
性欧美大战久久久久久久久
|
国产欧美激情
|
久久亚洲欧美
|
亚洲久久一区二区
|
欧美一区二区三区精品电影
|
在线观看国产日韩
|
欧美精品乱人伦久久久久久
|
亚洲在线成人精品
|
麻豆乱码国产一区二区三区
|
亚洲精品欧美
|
国产精品五月天
|
久久男人av资源网站
|
亚洲精品一区中文
|
久久不射中文字幕
|
亚洲精选中文字幕
|
国产三级欧美三级
|
欧美国产日产韩国视频
|
亚洲永久在线
|
91久久国产综合久久蜜月精品
|
亚洲欧美日韩国产一区二区
|
在线播放中文字幕一区
|
欧美图区在线视频
|
美女性感视频久久久
|
亚洲视频大全
|
亚洲黄色天堂
|
久久久欧美一区二区
|
亚洲午夜在线观看视频在线
|
黄色亚洲精品
|
国产精品毛片
|
欧美日韩成人在线
|
久久久人成影片一区二区三区观看
|
亚洲精品日韩一
|
男同欧美伦乱
|
久久国产精品72免费观看
|
亚洲最黄网站
|
亚洲国产精品电影
|
国产在线乱码一区二区三区
|
欧美日韩一区二区三
|
鲁大师成人一区二区三区
|
亚洲在线观看视频网站
|
亚洲全黄一级网站
|
欧美国产成人精品
|
另类专区欧美制服同性
|
欧美一级久久久久久久大片
|
av成人黄色
|
亚洲人妖在线
|
亚洲国产精品免费
|
一区二区在线视频播放
|
国产情人综合久久777777
|
国产精品二区在线观看
|
欧美久久久久久久久久
|
欧美成人激情视频免费观看
|
久久精品系列
|
久久国产毛片
|
久久爱91午夜羞羞
|
欧美一区二区三区四区在线观看
|
中文亚洲免费
|
亚洲丝袜av一区
|
亚洲网站在线播放
|
一区二区三区回区在观看免费视频
|
亚洲国产成人精品女人久久久
|
国产欧美精品一区二区色综合
|
欧美三区视频
|
国产精品久久久久久久第一福利
|
欧美日韩国产在线看
|
欧美女同视频
|
欧美日韩综合在线
|
欧美午夜精品久久久久久人妖
|
欧美日本精品
|
国产精品扒开腿做爽爽爽视频
|
欧美日韩在线精品一区二区三区
|
欧美日韩国产精品专区
|
欧美天堂亚洲电影院在线观看
|
欧美午夜在线
|
国产精品日韩久久久
|
国产欧美va欧美va香蕉在
|
国产目拍亚洲精品99久久精品
|
亚洲三级影片
|
亚洲精品视频在线观看网站
|
亚洲一二三级电影
|
亚洲在线免费观看
|
久久成人免费网
|
老妇喷水一区二区三区
|
欧美国产第一页
|
欧美涩涩视频
|
国产日韩在线亚洲字幕中文
|
国产一区999
|
伊伊综合在线
|
亚洲免费观看
|
午夜一区二区三视频在线观看
|
欧美中文字幕在线
|
欧美不卡一区
|
9i看片成人免费高清
|
校园激情久久
|
欧美成人69av
|
国产精品色在线
|
永久免费毛片在线播放不卡
|
亚洲精品在线三区
|
午夜精品美女自拍福到在线
|
久久久精品国产免大香伊
|
欧美高清在线播放
|
国产精品一区亚洲
|
亚洲高清自拍
|
午夜精品免费在线
|
欧美激情精品久久久久久大尺度
|
99精品国产在热久久
|
久久高清一区
|
欧美三区在线观看
|
亚洲第一区色
|
香蕉av777xxx色综合一区
|
欧美va亚洲va香蕉在线
|
中文亚洲视频在线
|
免费成人网www
|
国产欧美日韩激情
|
亚洲精品中文字幕在线
|
欧美在线免费视屏
|
亚洲精品一区二区三区av
|
欧美一区二区黄
|
欧美三级午夜理伦三级中视频
|
精品成人在线
|
欧美伊久线香蕉线新在线
|
亚洲国产精品福利
|
久久精品成人一区二区三区蜜臀
|
亚洲欧美文学
|
欧美日韩精品久久
|
一区免费观看
|
久久精品视频va
|
在线综合视频
|
欧美巨乳波霸
|
亚洲国产精品视频
|
久久婷婷国产麻豆91天堂
|
中国成人亚色综合网站
|
欧美精品1区2区3区
|
尤物yw午夜国产精品视频明星
|
午夜精品成人在线视频
|
亚洲看片网站
|
欧美成人中文字幕
|
亚洲国产高清视频
|
久久亚洲欧美
|
欧美中文字幕视频
|
国产日韩av在线播放
|
亚洲欧美中文字幕
|
一区二区三区国产在线
|
欧美精品在线视频
|
亚洲人在线视频
|
欧美激情a∨在线视频播放
|
久久久精品国产免费观看同学
|
国产人成一区二区三区影院
|
亚洲免费一级电影
|
亚洲视频观看
|
国产精品不卡在线
|
亚洲一区二区三区精品在线观看
|
亚洲精品国久久99热
|
欧美国产日韩亚洲一区
|
亚洲精品一区二区三区在线观看
|
欧美高清视频在线
|
欧美成人四级电影
|
亚洲狼人精品一区二区三区
|
亚洲电影免费在线
|
国产精品99久久久久久有的能看
|
欧美日韩免费精品
|
亚洲午夜精品17c
|
亚洲视频免费在线
|
国产精品久久久一本精品
|
亚洲欧美国产不卡
|
亚洲女人小视频在线观看
|
国产精品一区二区三区四区五区
|
国产精品成人一区二区
|
亚洲一区二区三区在线观看视频
|
日韩一级大片在线
|
欧美视频二区
|
欧美一区二区黄色
|
久久er99精品
|
亚洲黄色成人
|
亚洲最新中文字幕
|
国产精品视频免费在线观看
|
久久精品男女
|
免费亚洲一区二区
|
一区二区三区久久精品
|
亚洲一区二区成人
|
激情视频亚洲
|
最新精品在线
|
国产精品久久久久久久久婷婷
|
欧美在线一二三四区
|
久久全国免费视频
|
一区二区三区久久久
|
亚洲天堂男人
|
依依成人综合视频
|
亚洲精品美女在线观看
|
国产精品网站视频
|
欧美国产国产综合
|
国产精品乱码久久久久久
|
另类图片综合电影
|
国产精品福利影院
|
欧美h视频在线
|
国产精品国产精品国产专区不蜜
|
久久香蕉国产线看观看网
|