青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
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 © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲欧洲视频
|
亚洲视频你懂的
|
夜夜嗨av一区二区三区免费区
|
激情成人综合
|
国内欧美视频一区二区
|
精品成人国产
|
亚洲黄色影片
|
亚洲色图自拍
|
欧美在线观看视频
|
久久久久久久999
|
美女任你摸久久
|
亚洲精品四区
|
性欧美办公室18xxxxhd
|
免费黄网站欧美
|
欧美视频在线一区
|
国产亚洲精品资源在线26u
|
伊人春色精品
|
亚洲视频在线免费观看
|
久久久精品一区
|
最新亚洲激情
|
在线午夜精品
|
美女图片一区二区
|
国产精品欧美日韩一区
|
亚洲高清在线视频
|
亚洲欧美美女
|
亚洲电影欧美电影有声小说
|
9i看片成人免费高清
|
久久精品一区二区
|
欧美日韩午夜在线视频
|
国产一区二区精品久久91
|
亚洲毛片播放
|
快播亚洲色图
|
亚洲女性裸体视频
|
欧美麻豆久久久久久中文
|
国产小视频国产精品
|
一本色道久久综合亚洲精品高清
|
亚洲最新在线视频
|
久久精品国产一区二区三区免费看
|
老司机亚洲精品
|
国产精品亚洲一区
|
在线综合亚洲欧美在线视频
|
狼狼综合久久久久综合网
|
av成人天堂
|
欧美精品国产
|
奶水喷射视频一区
|
正在播放亚洲一区
|
久久久久久久成人
|
国产欧美日韩在线视频
|
99精品欧美
|
亚洲电影免费
|
欧美91大片
|
亚洲成色777777女色窝
|
久久久久久亚洲综合影院红桃
|
一本久久综合
|
欧美午夜一区二区福利视频
|
一本色道久久99精品综合
|
欧美国产亚洲视频
|
久久天堂精品
|
亚洲国产精品激情在线观看
|
麻豆视频一区二区
|
久久久精品日韩
|
亚洲第一在线
|
亚洲福利视频在线
|
欧美成人精品一区二区
|
亚洲激情综合
|
亚洲精品一区二区三区婷婷月
|
国产精品久久久久影院亚瑟
|
一区二区av
|
日韩网站在线观看
|
欧美性理论片在线观看片免费
|
国产精品99久久久久久久女警
|
亚洲精品四区
|
国产精品乱码
|
久久午夜国产精品
|
美玉足脚交一区二区三区图片
|
亚洲黄网站在线观看
|
亚洲精品黄网在线观看
|
欧美亚韩一区
|
久久久99免费视频
|
农夫在线精品视频免费观看
|
日韩视频一区二区三区
|
亚洲免费精彩视频
|
国产精品久久久久毛片软件
|
久久精品二区
|
久久综合导航
|
亚洲最新在线视频
|
亚洲在线一区
|
亚洲高清av
|
9l视频自拍蝌蚪9l视频成人
|
国产日韩欧美电影在线观看
|
免费在线看一区
|
欧美日本一道本
|
久久成人资源
|
欧美高清视频
|
久久久www成人免费毛片麻豆
|
久久精品一区二区三区四区
|
日韩视频在线免费
|
欧美有码在线观看视频
|
99国产精品国产精品久久
|
亚洲私拍自拍
|
日韩亚洲欧美成人一区
|
午夜电影亚洲
|
亚洲一区二区不卡免费
|
欧美一区二区三区四区高清
|
亚洲精品五月天
|
欧美在线免费
|
亚洲欧美三级在线
|
欧美黄色大片网站
|
久久久之久亚州精品露出
|
一本色道久久综合精品竹菊
|
午夜精品久久一牛影视
|
亚洲日本va午夜在线电影
|
亚洲自拍16p
|
日韩午夜一区
|
欧美ed2k
|
欧美www在线
|
国产日韩精品电影
|
一区二区三区福利
|
99国产精品私拍
|
裸体女人亚洲精品一区
|
久久国产主播精品
|
国产视频精品xxxx
|
亚洲欧美国产视频
|
亚洲欧美制服另类日韩
|
欧美日韩午夜视频在线观看
|
亚洲激情网站
|
亚洲精品一二区
|
免费视频一区
|
欧美国产91
|
亚洲国产成人久久综合
|
久久久久久久久久久久久女国产乱
|
香蕉免费一区二区三区在线观看
|
久久中文字幕导航
|
久久国产精品72免费观看
|
国产精品a久久久久久
|
亚洲欧洲综合另类
|
一本大道久久a久久综合婷婷
|
欧美激情第9页
|
亚洲经典自拍
|
在线一区亚洲
|
国产精品嫩草99a
|
亚洲欧美电影在线观看
|
午夜精品福利在线
|
国产视频久久
|
美日韩免费视频
|
亚洲欧洲日本mm
|
中文一区二区
|
国产精品国产馆在线真实露脸
|
一本色道久久综合亚洲精品不
|
一区二区三区日韩欧美精品
|
欧美日韩久久久久久
|
一本色道久久88综合日韩精品
|
亚洲制服丝袜在线
|
国产亚洲a∨片在线观看
|
欧美资源在线观看
|
亚洲国产欧美日韩精品
|
亚洲午夜激情
|
极品少妇一区二区
|
欧美日韩国产小视频
|
亚洲欧美中文日韩在线
|
久久亚洲视频
|
亚洲人成网站影音先锋播放
|
欧美成人日本
|
亚洲综合视频网
|
欧美77777
|
亚洲一区二区三区在线播放
|
国产视频一区免费看
|
蜜桃久久av
|
亚洲男人av电影
|
亚洲高清视频一区
|
午夜日韩电影
|
亚洲国产一区二区a毛片
|
欧美日韩在线播放
|
久久一区二区三区国产精品
|
一本色道久久综合亚洲精品不
|
亚洲每日更新
|
久久av最新网址
|
日韩亚洲欧美一区二区三区
|
国产精品美女999
|
另类综合日韩欧美亚洲
|
亚洲一级片在线观看
|
蜜臀va亚洲va欧美va天堂
|
一区二区三区精品国产
|
精品1区2区
|
国产精品男人爽免费视频1
|
欧美在线亚洲综合一区
|
亚洲高清不卡在线
|
久久久久国产精品午夜一区
|
99av国产精品欲麻豆
|
国语自产精品视频在线看8查询8
|
欧美精品一区在线
|
久久精品人人做人人综合
|
中文一区二区
|
日韩亚洲在线
|
亚洲国产精品一区二区第一页
|
●精品国产综合乱码久久久久
|
欧美午夜电影网
|
欧美另类99xxxxx
|
农村妇女精品
|
欧美在线视频观看免费网站
|