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

兔子的技術博客

兔子

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

留言簿(10)

最新評論

閱讀排行榜

評論排行榜

轉自:http://dev.csdn.net/article/17/17508.shtm
(只轉了一部分)

因為 C++語言已經于1998年被標準化,C++的中堅分子在努力推動程序員從數組轉到vector時就沒什么顧慮了。同樣顯然的情況也發生于嘗試使開發者從char*指針遷移到string對象的過程中。有很好的理由來做這些轉變,包括可以消除常見的編程錯誤(參見條款13),而且有機會獲得STL算法的全部強大能力(比如參見條款31)。

但是,障礙還是有的,最常見的一個就是已經存在的傳統C風格的API接受的是數組和char*指針,而不是vector和string對象。這樣的API函數還將會存在很長時間,如果我們要高效使用STL的話,就必須和它們和平共處。

幸運的是,這很容易。如果你有一個vector對象v,而你需要得到一個指向v中數據的指針,以使得它可以被當作一個數組,只要使用&v[0]就可以了。對于string對象s,相應的咒語是簡單的s.c_str()。但是是只讀的。如廣告中難懂的條文時常指出的,必然會有幾個限制。

給定一個

vector<int> v;
表達式v[0]生產一個指向vector中第一個元素的引用,所以,&v[0]是指向那個首元素的指針。vector中的元素被C++標準限定為存儲在連續內存中,就像是一個數組,所以,如果我們想要傳遞v給這樣的C風格的API:
void doSomething(const int* pInts, size_t numInts);

我們可以這么做:

doSomething(&v[0], v.size());

也許吧。可能吧。唯一的問題就是,如果v是空的。如果這樣的話,v.size()是0,而&v[0]試圖產生一個指向根本就不存在的東西的指針。這不是件好事。其結果未定義。一個較安全的方法是這樣:


if (!v.empty()) {
 doSomething(
&v[0], v.size());
}

如果走錯路了,你可能會碰到一些半吊子的人物,他們會告訴你說可以用v.begin()代替&v[0],因為(這些討厭的家伙將會告訴你)begin返回指向vector內部的迭代器,而對于vector,其迭代器實際上是指針。那經常是正確的,但正如條款50所說,并不總是如此,你不該依賴于此。begin的返回類型是iterator,而不是一個指針,當你需要一個指向vector內部數據的指針時絕不該使用begin。如果你基于某些原因決定鍵入v.begin(),就應該鍵入&*v.begin(),因為這將會產生和&v[0]相同的指針,這樣可以讓你有更多的打字機會而且讓其他要弄懂你代碼得人感覺到更晦澀。坦白地說,如果你正在和告訴你使用v.begin()代替&v[0]的人打交道的話,你該重新考慮一下你的社交圈了。(譯注:在VC6中,如果用v.begin()代替&v[0],編譯器不會說什么,但在VC7和GCC中這么做的話,就會引發一個編譯錯誤)

類似從vector上獲取指向內部數據的指針的方法,對string不是可靠的,因為(1)string中的數據并沒有承諾被存儲在連續內存中,(2)string的內部表示形式并沒承諾以一個null字符結束。這解釋了string的成員函數c_str存在的原因,它返回一個按C風格設計指針,指向string的值。因此我們可以這樣傳遞一個string對象s給這個函數,

。。。。。。。。。。。
。。。。。。。。。

posted on 2009-11-19 16:19 會飛的兔子 閱讀(321) 評論(0)  編輯 收藏 引用 所屬分類: C++庫,組件
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久国产主播精品| 久久综合九色综合网站| 香蕉久久a毛片| 久久久久久穴| 狠狠入ady亚洲精品| 国产精品高潮视频| 欧美永久精品| 久久乐国产精品| 国产精品色一区二区三区| 久久精品麻豆| 午夜精品久久久久久久蜜桃app| 另类激情亚洲| 亚洲欧美日韩国产精品| 亚洲裸体视频| 国产亚洲精品美女| 欧美日韩成人在线观看| 久久综合九色欧美综合狠狠| 久久婷婷久久| 欧美一区二区三区的| 亚洲午夜在线视频| 一区二区三区蜜桃网| 国产精品美女999| 欧美精品 日韩| 欧美精品www| 亚洲国产中文字幕在线观看| 久久久久久免费| 欧美成人午夜激情视频| 欧美日韩国产成人在线91| 欧美国产三区| 国产欧美日韩免费| 午夜精品999| 国内精品国语自产拍在线观看| 亚洲第一成人在线| 欧美四级在线观看| 国语精品中文字幕| 亚洲福利精品| 国产精品亚洲不卡a| 国产日韩一区二区三区在线播放| 激情国产一区| 亚洲一级黄色片| 欧美1级日本1级| 亚洲自拍啪啪| 欧美日韩国产免费| 亚洲电影在线看| 亚洲图色在线| 欧美二区在线看| 亚洲欧美在线播放| 欧美日韩一级黄| 亚洲国产精品v| 久久九九免费| 亚洲免费一在线| 国产精品久久久久久久久| 日韩亚洲欧美精品| 亚洲电影免费观看高清完整版在线| 中文网丁香综合网| 欧美全黄视频| 亚洲精品一区二| 欧美国产激情| 免费不卡在线观看av| 永久91嫩草亚洲精品人人| 久久久91精品国产| 欧美一区二区三区四区夜夜大片| 国产精品永久入口久久久| 亚洲一区二区久久| 一区二区三区回区在观看免费视频| 欧美成人精品在线视频| 亚洲高清在线视频| 欧美好骚综合网| 欧美风情在线| 夜夜精品视频一区二区| 亚洲精品永久免费精品| 欧美精品一线| 亚洲无玛一区| 亚洲一级高清| 国产一区二区日韩精品| 久久午夜av| 免费观看亚洲视频大全| 一本一本久久a久久精品综合妖精| 亚洲毛片一区二区| 国产精品乱看| 美女免费视频一区| 欧美精品尤物在线| 久久高清免费观看| 免费高清在线视频一区·| 99在线热播精品免费| 亚洲天堂av在线免费观看| 国产欧美综合在线| 欧美激情久久久| 欧美视频在线观看免费网址| 欧美淫片网站| 欧美大片一区二区| 欧美一区午夜精品| 模特精品裸拍一区| 亚洲免费观看| 韩国成人精品a∨在线观看| 亚洲成在人线av| 欧美理论在线播放| 欧美成在线观看| 在线不卡视频| 久久久久在线| 麻豆成人在线观看| 国产一区二区三区直播精品电影| 亚洲区免费影片| 欧美午夜精品电影| 亚洲电影在线免费观看| 美女主播视频一区| 欧美日韩xxxxx| 久久精品国产久精国产思思| 免费在线视频一区| 欧美一区二视频| 久久综合一区二区| 新片速递亚洲合集欧美合集| 免费久久99精品国产自在现线| 在线视频你懂得一区| 久久久久久亚洲综合影院红桃 | 亚洲国产精品va在看黑人| 日韩性生活视频| 亚洲第一视频网站| 西瓜成人精品人成网站| 一区二区欧美国产| 欧美va亚洲va香蕉在线| 久久久激情视频| 国产精品男女猛烈高潮激情 | 国产一区二区三区免费不卡| 亚洲免费电影在线观看| 亚洲日本中文字幕| 另类成人小视频在线| 久久国产精品网站| 国产精品嫩草影院av蜜臀| 日韩一二在线观看| 99视频+国产日韩欧美| 欧美凹凸一区二区三区视频| 老色鬼久久亚洲一区二区 | 国产一区久久久| 欧美怡红院视频一区二区三区| 亚洲欧美变态国产另类| 欧美日韩专区| 一区二区三区欧美在线| 亚洲午夜激情在线| 欧美性大战久久久久久久| 99精品国产热久久91蜜凸| 亚洲一级网站| 国产精品麻豆va在线播放| 亚洲小少妇裸体bbw| 久久九九精品99国产精品| 亚洲婷婷综合久久一本伊一区| 99精品国产99久久久久久福利| 久久阴道视频| 亚洲人成免费| 一级日韩一区在线观看| 欧美日韩精品系列| 国内外成人免费激情在线视频 | 久久综合色一综合色88| 玖玖综合伊人| 亚洲高清在线播放| 欧美精品成人一区二区在线观看 | 亚洲国产精品久久久久久女王| 乱码第一页成人| 夜夜嗨av一区二区三区免费区| 亚洲视频一区在线观看| 国产精品久久久久9999| 性欧美激情精品| 欧美福利在线| 亚洲主播在线观看| 伊人久久男人天堂| 欧美日韩国产123| 亚洲欧美乱综合| 欧美~级网站不卡| 亚洲专区在线| 国语自产精品视频在线看8查询8| 久久夜色精品国产亚洲aⅴ| 亚洲精品乱码久久久久久蜜桃91| 亚洲欧美福利一区二区| 一色屋精品视频在线观看网站| 欧美精品18| 久久av在线| 一区二区三区高清视频在线观看| 久久先锋影音av| 中文一区二区| 经典三级久久| 国产精品热久久久久夜色精品三区| 久久精品理论片| 亚洲婷婷在线| 亚洲国产日韩欧美在线图片| 久久国产欧美| 亚洲一区二区三区视频| 亚洲二区在线视频| 国产性做久久久久久| 欧美日韩亚洲高清一区二区| 久久久精品动漫| 亚洲视频电影图片偷拍一区| 欧美高清在线观看| 久久精品中文字幕免费mv| 一区二区三区精品久久久| 亚洲国产高潮在线观看| 韩日视频一区| 国产欧美一区二区三区国产幕精品| 欧美精品九九99久久| 老司机精品视频网站| 欧美一区二区三区视频在线 |