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

無我

讓內心永遠燃燒著偉大的光明的精神之火!
靈活的思考,嚴謹的實現
豪邁的氣魄、頑強的意志和周全的思考

STL問題系列一

一直在學習STL,用的書籍是王昕譯的《C++ STL 中文版》,學習中產生很多問題,特在這向各位高手請教,以下問題基本是按教材章節順序給出的,如果您手中也剛好有這樣一本書,那就太好了,這樣就不會因為我理解的膚淺而讓您不明白題意,總之,請各位高手不吝賜教:
STL問題系列一
1、《C++STL 中文版》第一章課后習題:1-4、解釋為什么在所寫算法中使用其他種類的迭代器,而不是隨機存取迭代器?1-5、解釋為什么寧愿定義一個僅能通過迭代器來存取的數據結構,而不是讓他可以被隨機存取呢?

2、《C++STL 中文版》迭代器部分一直介紹輸入、輸去、前向、雙向、隨機迭代器,然而我以為只要以<iterator>建立的對象就具有隨機迭代器的功能,為何討論前向、雙向呢?

3、從《C++STL 中文版》第一章后面的習題看前向、雙向、隨機迭代器從性質和條件上有較大差別,請問這在深層上如何理解呢?

4、《C++STL 中文版》第二章習題:2-3“當T和U中有一個是const類型時,我們可能需要經常構造一個pair<T,U>對象。下面的定義是否可以達到這樣的效果?如果不可以,請說出你的理由。
template<class T,class U>inline pair<T,U> make_pair(T& x,U& y)
{return  (pair<T,U> (x,y));}”

5、《C++STL 中文版》2-4“請描述出一種可能的編碼情況,使得表達式 x.first < y.first ||
!(y.first < x.first)  && x.second < y.second 并不等同于 x.first < y.first || x.first == y.first  && x.second < y.second。”

6、STL在他的文件中定義了指針和引用,但同時還總是定義常指針和常引用,為何兩者必須分開實現呢?

7、《C++STL 中文版》第四章:4-6“寫出一個分配器,它將對象存儲在一個磁盤文件中,并且維護一個小小的高速緩存來存儲程序內存中的有效對象。”

8、《C++STL 中文版》第四章:4-7“在那種情況下,分配器應該以與模板類allocator不一致的方式來定義成員函數construct和destroy?”

9、<algorithm>文件中sort_heap函數功能:void  sort_heap(RanIt  first, RanIt  last)重排由區間[first,last)中的迭代器指定的序列,產生一個按 operator <排序的序列。但是最初的序列也必須是一個同樣按 operator < 排序的堆。這樣看,那該函數的實際意義呢?

posted on 2007-09-13 14:36 Tim 閱讀(1689) 評論(8)  編輯 收藏 引用 所屬分類: C/C++語言

評論

# re: STL問題系列一 2007-09-13 15:03 Minidx全文檢索

怎么感覺像在考試……呵呵  回復  更多評論   

# re: STL問題系列一 2007-09-13 20:21 螞蟻終結者

這本書我沒看過,不過The C++ Standard Library很不錯  回復  更多評論   

# re: STL問題系列一 2007-09-13 21:48 沐楓

這個不要放在首頁吧...  回復  更多評論   

# re: STL問題系列一 2007-09-13 22:53 沐楓

1、《C++STL 中文版》第一章課后習題:1-4、解釋為什么在所寫算法中使用其他種類的迭代器,而不是隨機存取迭代器?1-5、解釋為什么寧愿定義一個僅能通過迭代器來存取的數據結構,而不是讓他可以被隨機存取呢?
>>
1-4,并不是說不能使用隨機存取迭代器.比如sort就是使用隨機迭代器.設計一個算法,要選擇哪種迭代器,是要看具體什么算法.如果前向能滿足,就選前向,否則才考慮雙向,最后再考慮隨機.
1-5,問題與1-4是一致的.這里也不是寧愿不寧愿的問題.不同的數據結構有不同的目的.沒有特別的要求.這兩個題稍有誤導.主要是STL中的算法基本上都是通過迭代器存取.因此,符合迭代器的結構,就可以直接使用上這些算法.接口也統一,設計也清楚.

2、《C++STL 中文版》迭代器部分一直介紹輸入、輸去、前向、雙向、隨機迭代器,然而我以為只要以<iterator>建立的對象就具有隨機迭代器的功能,為何討論前向、雙向呢?
>>
迭代器是一種存取容器數據結構的方式.并不是所有的容器都可以直接支持隨機訪問的,或者說,用隨機訪問效率非常低下.比如鏈表.(雙向鏈表和單向鏈表等)

3、從《C++STL 中文版》第一章后面的習題看前向、雙向、隨機迭代器從性質和條件上有較大差別,請問這在深層上如何理解呢?
>>
顯然,前向指只能向從前向后依順序訪問(如單向鏈表)
.雙向指可以向前,也可以向后依順序訪問(如雙向鏈表)
.隨機,則是可以隨機訪問容器中的任何一個元素(如數組).

4、《C++STL 中文版》第二章習題:2-3“當T和U中有一個是const類型時,我們可能需要經常構造一個pair<T,U>對象。下面的定義是否可以達到這樣的效果?如果不可以,請說出你的理由。
template<class T,class U>inline pair<T,U> make_pair(T& x,U& y)
{return (pair<T,U> (x,y));}”
>>
這個
這樣的效果是什么效果?是指能不能構造成功?當然可以構造成功啦.例如:int a=2,b=4;pair<const int, int> c(make_pair(a,b));


5、《C++STL 中文版》2-4“請描述出一種可能的編碼情況,使得表達式 x.first < y.first ||
!(y.first < x.first) && x.second < y.second 并不等同于 x.first < y.first || x.first == y.first && x.second < y.second。”
>>
沒看過這本書.不明白要求什么寫哪部份的編碼.單從表達式來說.
隨便寫一個不符合要求的operator == 就好了(比如operator==返回<的結果).

6、STL在他的文件中定義了指針和引用,但同時還總是定義常指針和常引用,為何兩者必須分開實現呢?
>>
常指針和指針...這指的是typedef嗎?typedef談不上實現不實現的吧.只不過是一個typedef而已啦.C++的typedef并不是一個真正的類型,只是類型的別稱而已.

7、《C++STL 中文版》第四章:4-6“寫出一個分配器,它將對象存儲在一個磁盤文件中,并且維護一個小小的高速緩存來存儲程序內存中的有效對象。”
>>
這個...為什么不自已試著寫寫呢.

8、《C++STL 中文版》第四章:4-7“在那種情況下,分配器應該以與模板類allocator不一致的方式來定義成員函數construct和destroy?”
>>
allocator的construct是用placement new來實現的.construct的目的就是用于調用構造函數.在C++中,似乎只有用placement new的方式來手工調用構造函數.不一致的話,是不是指不用調用構造函數,或是有特別的調用方式?想不出來可以不用調用構造函數的實現或別的調用方式.
或者是不一致的方式另有所指?

9、<algorithm>文件中sort_heap函數功能:void sort_heap(RanIt first, RanIt last)重排由區間[first,last)中的迭代器指定的序列,產生一個按 operator <排序的序列。但是最初的序列也必須是一個同樣按 operator < 排序的堆。這樣看,那該函數的實際意義呢?
>>答:
堆排序.按<排序的堆,并不等于整個序列是按<排好序的.例如:( 9 6 8 4 1 5 7 3 2 0 )就是按<排好序的堆.但按<排好序的序列是(1 2 3 4 5 6 7 8 9)  回復  更多評論   

# re: STL問題系列一 2007-09-14 09:28 Tim

沐楓,你好!非常感謝你這樣詳盡的回答我這么多問題。我收獲很大,謝謝!這里對于第5題,“《C++STL 中文版》2-4“請描述出一種可能的編碼情況,使得表達式 x.first < y.first ||
!(y.first < x.first) && x.second < y.second 并不等同于 x.first < y.first || x.first == y.first && x.second < y.second。”事實上,書中給出的C++ STL源碼中在比較時大部分都是采用這種寫法。其實邏輯是很明顯的,例如對pair對x和y,先比較x.first < y.first ,不成立。當x.first == y.first 時,在比較x.second < y.second,但寫法在判斷
x.first < y.first 不成立后,STL的作者好像認為!(y.first < x.first)的作用要大于x.first == y.first ,而按題意,他還要我們給出這樣的編碼,我給不出來,可能是經驗有限。你的觀點呢?
對第8題:8、《C++STL 中文版》第四章:4-7“在那種情況下,分配器應該以與模板類allocator不一致的方式來定義成員函數construct和destroy?”
>>
allocator的construct是用placement new來實現的.construct的目的就是用于調用構造函數.在C++中,似乎只有用placement new的方式來手工調用構造函數.不一致的話,是不是指不用調用構造函數,或是有特別的調用方式?想不出來可以不用調用構造函數的實現或別的調用方式.
或者是不一致的方式另有所指?
>>我想你的分析是對的,應該是一不一樣的方式來定義成員函數construct和destroy,只是我看完了《C++STL 中文版》,對分配器的認識還是很模糊。不明白其深層原理。@沐楓
  回復  更多評論   

# re: STL問題系列一 2007-09-14 17:20 沐楓

關于 < 的比較
你有沒有注意到,大多數的STL算法,都只需要傳進去一個比較函數就可以了?
默認情況下,傳進去的就是 < 比較.
那么,如果你要比較 a == b 怎么辦?
只有 !(a<b) && !(b<a)了.
所以,并非是說 ==的作用要小于<,而是條件所限.既然一個比較就可以了,總不能讓你提供一大堆的比較函數吧?  回復  更多評論   

# re: STL問題系列一 2007-09-16 12:25 Tim

恩,你說得對!很有道理,謝謝!
@沐楓
  回復  更多評論   

# re: STL問題系列一 2007-09-30 14:27 空明流轉

@Tim
請參考 Effective STL的《注意區分equalization 和 equivalence》  回復  更多評論   

<2011年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

公告

本博客原創文章,歡迎轉載和交流。不過請注明以下信息:
作者:TimWu
郵箱:timfly@yeah.net
來源:m.shnenglu.com/Tim
感謝您對我的支持!

留言簿(9)

隨筆分類(173)

IT

Life

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            91久久精品国产91久久| 在线精品观看| 欧美亚洲一级片| 亚洲在线电影| 在线亚洲自拍| 午夜久久影院| 久久久久久网站| 欧美福利网址| 国产精品夜夜夜一区二区三区尤| 久久香蕉精品| 日韩写真视频在线观看| 蜜臀av国产精品久久久久| 欧美性猛交99久久久久99按摩 | 雨宫琴音一区二区在线| 久久国产一区| 欧美影院一区| 一区二区三区中文在线观看| 久久久久99精品国产片| 欧美专区在线观看| 在线观看亚洲视频啊啊啊啊| 美女脱光内衣内裤视频久久网站| 久久精品国亚洲| 亚洲国产日韩欧美在线99| 欧美韩国日本一区| 欧美日本韩国一区| 午夜精品一区二区三区电影天堂| 亚洲视频精品在线| 国产日韩精品一区| 久久久视频精品| 欧美11—12娇小xxxx| 在线亚洲免费视频| 亚洲一区中文| 亚洲第一色中文字幕| 亚洲欧洲在线视频| 国产精品久久久久久av下载红粉 | 国产欧美日韩亚洲精品| 久久久国际精品| 欧美.www| 欧美一区二区三区四区在线观看| 久久国产一区二区三区| 亚洲人成高清| 亚洲图片在线观看| 亚洲大片在线观看| 99精品国产高清一区二区| 国产欧美一区二区三区在线看蜜臀| 久久精品一区二区三区不卡牛牛| 久久综合中文色婷婷| 中文久久乱码一区二区| 亚洲欧美国产高清va在线播| 亚洲区第一页| 欧美一区二区三区的| 亚洲日本精品国产第一区| 亚洲欧美日韩人成在线播放| 亚洲人成毛片在线播放女女| 在线视频精品| 亚洲欧洲日产国码二区| 欧美一区二区黄色| 一区二区免费在线观看| 久久免费一区| 欧美亚洲视频一区二区| 欧美日韩一区二区视频在线| 久久欧美肥婆一二区| 欧美午夜片在线观看| 亚洲第一精品电影| 国产欧美综合在线| 日韩手机在线导航| 欧美大片免费久久精品三p| 亚洲欧美日韩国产成人| 欧美国产亚洲视频| 牛人盗摄一区二区三区视频| 国产亚洲制服色| 亚洲一区二区精品在线| 亚洲国产日韩在线一区模特| 在线综合视频| 中文在线一区| 欧美高清在线一区| 免费观看欧美在线视频的网站| 国产精品一区二区a| a4yy欧美一区二区三区| 亚洲最新在线| 欧美成人免费视频| 欧美成人国产va精品日本一级| 国产亚洲高清视频| 亚洲自拍偷拍视频| 亚洲一区二区在线免费观看视频| 欧美国产高潮xxxx1819| 亚洲经典自拍| 日韩亚洲一区二区| 欧美精品日韩www.p站| 亚洲国产mv| 亚洲精品一区二区三| 欧美紧缚bdsm在线视频| 亚洲欧洲日产国产综合网| 日韩亚洲不卡在线| 欧美精品少妇一区二区三区| 亚洲精品一区二区三区四区高清| 99国内精品| 欧美日韩精品免费观看| 亚洲美女区一区| 亚洲影院污污.| 国产精品有限公司| 欧美一区二区三区在| 久久久久久夜| 在线日本成人| 欧美成人精品激情在线观看| 亚洲欧洲综合另类在线| 亚洲伦理精品| 国产精品久久久久久久app| 亚洲自拍电影| 麻豆久久婷婷| 日韩写真在线| 国产日本欧美一区二区三区在线| 性欧美1819sex性高清| 久久影视精品| 日韩特黄影片| 国产精品一区二区久久久| 欧美在线观看天堂一区二区三区| 久久综合电影一区| 日韩亚洲视频| 韩国欧美一区| 欧美精品国产| 先锋影音一区二区三区| 欧美jizzhd精品欧美巨大免费| 一本一本久久| 国产亚洲欧美日韩美女| 欧美不卡一卡二卡免费版| 99精品视频一区| 久久女同互慰一区二区三区| 亚洲美洲欧洲综合国产一区| 国产精品久久一区二区三区| 久久久噜噜噜久久人人看| 99re热精品| 男人的天堂成人在线| 亚洲男人第一网站| 亚洲国产欧美久久| 国产欧美日韩免费看aⅴ视频| 欧美成黄导航| 免费亚洲电影在线观看| 亚洲一级在线观看| 久久电影一区| 国产精品久久7| 亚洲欧美日韩在线高清直播| 亚洲国产另类精品专区| 日韩视频免费看| 久久午夜国产精品| 国产欧美一区二区精品忘忧草| 亚洲香蕉视频| 亚洲图片欧美一区| 国产精品色婷婷| 亚洲欧美日韩一区二区| 亚洲国产精品久久91精品| 欧美成人免费全部观看天天性色| 激情综合激情| 亚洲精品免费在线观看| 欧美人交a欧美精品| 亚洲视频欧洲视频| 亚洲自拍偷拍视频| 在线欧美一区| 亚洲美女尤物影院| 亚洲视频在线一区| 亚洲综合电影| 亚洲激情亚洲| 亚洲另类视频| 国产乱肥老妇国产一区二| 午夜欧美精品久久久久久久| 免费在线成人av| 亚洲国产aⅴ天堂久久| 亚洲欧洲美洲综合色网| 亚洲自拍都市欧美小说| 一区二区三区日韩在线观看| 国产精品美女在线| 欧美大香线蕉线伊人久久国产精品| 久久久国产精品一区| 伊人久久婷婷| 一区二区三区日韩精品视频| 宅男在线国产精品| 亚洲黄色在线观看| 免费一区二区三区| 小黄鸭精品aⅴ导航网站入口| 日韩亚洲视频| 一本色道久久综合精品竹菊 | 国产一区二区精品| 欧美三级中文字幕在线观看| 欧美日韩国产一级片| 欧美人妖在线观看| 欧美日韩中文精品| 欧美午夜精彩| 国产女主播一区二区| 国产日本欧美一区二区| 国产一区日韩一区| …久久精品99久久香蕉国产| 在线观看日产精品| 亚洲美女av黄| 午夜久久美女| 久久久国产91| 欧美成人精品在线观看| 最新国产拍偷乱拍精品| aa级大片欧美| 欧美中文字幕不卡| 久久综合九色综合欧美狠狠|