注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語言/工具STL源碼剖析

STL源碼剖析

STL源碼剖析

定 價(jià):¥68.00

作 者: 侯捷著
出版社: 華中科技大學(xué)出版社
叢編項(xiàng): 侯捷譯作系列
標(biāo) 簽: STL

ISBN: 9787560926995 出版時(shí)間: 2002-06-01 包裝: 膠版紙
開本: 23cm 頁數(shù): 493 字?jǐn)?shù):  

內(nèi)容簡介

  身為C++標(biāo)準(zhǔn)庫最重要的組成部分,STL(標(biāo)準(zhǔn)模板庫)不僅是一個(gè)可復(fù)用組件庫,而且是一個(gè)包羅算法與數(shù)據(jù)結(jié)構(gòu)的軟件框架(framework)。“框架”這個(gè)詞,本身就有龐大、穩(wěn)定、完整而可擴(kuò)展的涵義。軟件框架,則是用一行行精細(xì)準(zhǔn)確的源碼,構(gòu)造一個(gè)龐大、穩(wěn)定、完整而可擴(kuò)展的軟件架構(gòu),稍有軟件開發(fā)經(jīng)驗(yàn)的人都知道,要做到這些,談何容易! STL在1994年走入C++標(biāo)準(zhǔn),使得原本即將推出的C++標(biāo)準(zhǔn)延遲4年問世而無怨無悔,并為之對(duì)內(nèi)容做巨幅改進(jìn),而今STL不僅為千千萬萬C++程序員所日常運(yùn)用,而且獲得極高的學(xué)術(shù)贊譽(yù),成為了一個(gè)典范,一種境界。作為一個(gè)軟件框架,STL所取得的成功,實(shí)在可以用“輝煌”來形容,其所內(nèi)涵的軟件思想和技術(shù)經(jīng)驗(yàn),更是無比的深厚與精致。學(xué)習(xí)編程的人都知道,閱讀剖析名家代碼乃是提高水平的捷徑。源碼之前,了無秘密,大師們的縝密思維,經(jīng)驗(yàn)結(jié)晶,技術(shù)思路,獨(dú)到風(fēng)格,都原原本本地體現(xiàn)在源碼之中。在你仔細(xì)推敲之中,迷惑不解之時(shí),恍然大悟之際,你的經(jīng)驗(yàn)、思維、視野、知識(shí)乃至技術(shù)品味都會(huì)獲得快速的成長。特別是面對(duì)STL這樣優(yōu)秀而普遍的作品,無論你是為了滿足作為程序員第二天性的求知欲,還是在日常工作中解決實(shí)際問題,總會(huì)有一天,你會(huì)打開一個(gè)叫做或者的頭文件,想把STL背后的秘密看個(gè)究竟。英文里有一個(gè)常用短語,叫做“under the hood”,鉆進(jìn)魔術(shù)師的帳篷,屏住呼吸,瞪大眼睛,把那些奇妙的魔法看個(gè)通透,讓自己的理解和技藝獲得巨幅的提升,這種誘惑,任何一個(gè)程序員都無法抵擋!不過,想要研讀STL源碼,絕對(duì)沒有那么簡單。STL是精致的軟件框架,是為優(yōu)化效率而無所不用其極的藝術(shù)品,是數(shù)據(jù)結(jié)構(gòu)與算法大師經(jīng)年累月的智慧結(jié)晶,是泛型思想的光輝詩篇,是C++高級(jí)技術(shù)的精彩亮相,這些燦爛的贊譽(yù),體現(xiàn)在數(shù)萬行源碼里,對(duì)于一個(gè)初涉此道的學(xué)習(xí)者來說,就是一個(gè)感覺:“難!”。無論你是會(huì)淺嘗輒止地退出這次探險(xiǎn),還是勇敢地向濃霧中前進(jìn),當(dāng)你受困于STL精致的大網(wǎng)之中,為那些迷一般的結(jié)構(gòu)和動(dòng)作感到茫然無措的時(shí)侯,所有人都會(huì)冒出一個(gè)念頭:“如果有這樣一本書,既能夠提綱挈領(lǐng),為我理順?biāo)季w,指引方向,同時(shí)又能夠照顧小節(jié),闡述細(xì)微,幫助我更快更好地理解STL源碼,那該有多好!”望著長長的STL著作列表,一個(gè)“真正”的C++程序員,多少會(huì)有一點(diǎn)遺憾。自從STL問世以來,出版了大量的書籍,幫助讀者了解它的思想,學(xué)習(xí)它的用法,掌握它的技巧。其中佼佼者如Matt Austern的《Generic Programming and STL》,Nicolai Josuttis的《The C++ Standard Library》,Scott Meyers的《Effective STL》,已成C++經(jīng)典名著。然而,定位在引導(dǎo)學(xué)習(xí)者進(jìn)行STL源碼分析的著作,可以說是鳳毛麟角。畢竟,既要能高屋建瓴,剖析大架構(gòu),不為紛繁瑣碎之細(xì)節(jié)而迷亂,又能具體而微,體現(xiàn)細(xì)致之處的精妙縝密,不因?yàn)楹甏篌w系而失之粗略,無論對(duì)于專家高手還是技術(shù)作者,都是太難達(dá)到的目標(biāo)。讀了這本《STL源碼剖析》之后,我認(rèn)為,這個(gè)遺憾終于被補(bǔ)足了!本書的作者侯捷先生是蜚聲海峽兩岸的著名IT技術(shù)作家,在C++,Windows系統(tǒng)原理,泛型理論和STL等技術(shù)領(lǐng)域有極深的造詣。然而,侯先生最令人稱道之處,乃是他剖析大架構(gòu)的能力。所謂剖析大架構(gòu),就是要在洋洋灑灑數(shù)以萬行計(jì)的源碼中,精準(zhǔn)定位,抽取核心觀念,高屋建瓴,綱舉目張,將看上去亂麻一般的源碼梳理得頭緒清晰,條理分明,同時(shí)又照顧細(xì)節(jié),參透精微,把一個(gè)個(gè)關(guān)鍵動(dòng)作闡述得通通透透,這種能力,我以為至少在華人技術(shù)作者中,侯先生堪執(zhí)牛耳。在他的名作《深入淺出MFC》中,侯先生將自己這方面的能力展現(xiàn)得淋漓盡致,而在這本《STL源碼剖析》中,我們又看到了一次更加精彩的表現(xiàn)。我有機(jī)會(huì)作為大陸最早的幾個(gè)讀者之一,詳細(xì)拜讀了侯先生的這本最新STL專著,感到了一種強(qiáng)烈的技術(shù)沖動(dòng),說得俗一點(diǎn),就是覺得很過癮!具體來說,我以為這本書至少有四大特點(diǎn),使它成為我所見過的最出色的一本STL源碼剖析類著作。首先,選材精當(dāng),立足高遠(yuǎn)。STL是一個(gè)標(biāo)準(zhǔn),因而有各種實(shí)作版本。本書所剖析的SGI STL,可以說是設(shè)計(jì)最巧妙,思想最深刻,獲得贊譽(yù)最盛,認(rèn)同最廣的STL實(shí)作。當(dāng)然,這份出自STL之父Alex Stepanov,以及Matt Austern,David Musser等巨匠之手的經(jīng)典作品,剖析闡述起來自然也需要花費(fèi)更大的心力。侯先生籍其扎實(shí)的理論與技術(shù)素養(yǎng),毅然選擇這份作品來剖析,是需要極大勇氣與自信的。同樣,本書對(duì)讀者的預(yù)期,也是很高的,不但要有扎實(shí)的基本功,更要有掌握STL的興趣與堅(jiān)韌意志。讀這本書,你可以有充分的信心,學(xué)到的是超一流大師的思想和經(jīng)驗(yàn),所謂名門正派,高屋建瓴。其次,脈絡(luò)清晰,組織順序匠心獨(dú)具。任何人打算系統(tǒng)閱讀STL源碼,所必須作出的第一個(gè)決定就是,從何處開始?我在初讀此書時(shí),一個(gè)最疑惑的地方就是候先生居然把a(bǔ)llocator放在所有組件之前講述。要知道,allocator這個(gè)東西,對(duì)一般的使用者完全透明,根本感覺不到其存在,以至于在名著《The C++ Standard Libaray》中,Nicolai Josuttis將這一部分放在全書最后。既然如此,又何必讓這個(gè)無名小卒占據(jù)頭版頭條?我一開始還真是不理解。直到后來,我自己有一些擴(kuò)展STL的實(shí)踐,才發(fā)現(xiàn),用的時(shí)候你固然可以對(duì)allocator不聞不問,但一旦要領(lǐng)悟STL的工作原理,或者要自己擴(kuò)展STL的功能,則對(duì)于allocator的掌握幾乎是第一先決條件。不了解allocator,則無論剖析也好,擴(kuò)展也罷,必然處處碰壁。侯先生毫不遲疑,首先幫讀者搬開這塊絆腳石,理出頭緒,實(shí)在是匠心獨(dú)具。緊接著的第三章iterator及traits,直入STL的核心觀念與關(guān)鍵技術(shù),劍走中鋒,直取要害,高舉高打,開誠布公,直接把理解STL的鑰匙交道讀者手上。此章一過,讀者神氣完足,就可以大刀闊斧地打通STL的重重關(guān)隘。此布局只要稍有變化,讀者的學(xué)習(xí)難度勢(shì)必猛增。侯先生的此種安排,實(shí)在是大家手筆!此外,本書在技術(shù)上迎難而上,詳略得當(dāng),完整而重點(diǎn)突出。了解SGI STL的讀者都知道,這份作品對(duì)C++標(biāo)準(zhǔn)中的STL做了大量的擴(kuò)充,增加了專用的高效allocator,用以操作巨型字符串的rope,單鏈表slist,以及萬眾企盼的hash容器等等,再加上STL本身就有很多精微之處,技術(shù)上的難點(diǎn)不少。此類書籍的作者,但凡稍有一絲懈怠之心,大可以冠冕堂皇地避重就輕。然而侯先生在此書中對(duì)重點(diǎn)難點(diǎn)毫不避諱,無論是標(biāo)準(zhǔn)功能還是非標(biāo)準(zhǔn)功能,只要對(duì)讀者理解STL架構(gòu)有益,只要有助于提高讀者的技術(shù),增長讀者的視野與經(jīng)驗(yàn),書中必然不畏繁難,將所有技術(shù)細(xì)節(jié)原原本本和盤托出。另一方面,所謂剖析源碼,其目的在于明理,解惑,提高自身水平,并不是要窮經(jīng)皓首,倒背如流。因此,一旦道理講清楚,書中就將重復(fù)與一般性的內(nèi)容一筆帶過,孰輕孰重,一目了然,詳略十分得當(dāng),這一點(diǎn)對(duì)于提高讀者的學(xué)習(xí)效率,有著巨大的意義。最后一點(diǎn),本書通過大量生動(dòng)范例和插圖講解基本思想,在同類書籍中堪稱典范。雖然我把這一點(diǎn)放在最后,但我相信大部分讀者站在書店,隨手翻過這本書,得到的第一印象便是這一點(diǎn)。STL之所以為大家所津津樂道,除了其思想深刻之外,最大的因素是它實(shí)用。它所包裝的,是算法與數(shù)據(jù)結(jié)構(gòu)的基本功能。作為一個(gè)程序員,如果你是做數(shù)據(jù)庫編程的,大可以不懂匯編語言,如果你是寫驅(qū)動(dòng)程序的,大可以不必通曉人工智能,寫編譯器的可以不用懂什么計(jì)算機(jī)圖形學(xué),操作系統(tǒng)內(nèi)核高手的不用精通網(wǎng)站架設(shè),然而,如果你不懂?dāng)?shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ)知識(shí),不具備數(shù)據(jù)結(jié)構(gòu)與算法的基本技能,那就完全喪失稱為一個(gè)程序員的資格!市面上講述算法與數(shù)據(jù)結(jié)構(gòu)的專著汗牛充棟,俯拾皆是。相比之下,本書倒并不是以此為核心目標(biāo)的。但是,可曾有哪位讀者看到任何一本書象本書一樣,將紅黑樹用一張張清晰生動(dòng)的圖解釋得如此淺顯易懂?所謂一圖勝千言,在教授基本數(shù)據(jù)結(jié)構(gòu)與算法方面,我想不出還有任何一種方法,能夠比幻燈般的圖片更生動(dòng)更令人印象深刻了。讀過此書的每一位讀者,我想都會(huì)為書中那一副副插圖所打動(dòng),作者細(xì)致嚴(yán)謹(jǐn)?shù)淖黠L(fēng),時(shí)刻為讀者考慮的敬業(yè)精神,也許是更值得我們尊敬的東西。

作者簡介

  作者:侯捷臺(tái)灣資深技術(shù)作家、譯者。閑靜少言。不慕榮利。好讀書。求甚解。侯捷先生以為“任何書籍如果缺少讀者,再怎么優(yōu)秀都將喪失價(jià)值。因此,做為一位書評(píng)人,我非常樂見評(píng)選風(fēng)氣興盛。雖然所謂“喜愛”帶有很大的主觀成份,但這類評(píng)選仍然具有十分正面的價(jià)值,可以帶給讀者、作者、譯者、出版者很大的參與感,對(duì)于讀書風(fēng)氣、好書浮現(xiàn)率都有幫助?!鄙钊霚\出MFC(第二版)>>更多作品

圖書目錄

庖丁解牛(侯捷自序)
目錄
前言
    本書定位
    合適的讀者
    最佳閱讀方式
    我所選擇的剖析對(duì)象
    各章主題
    編譯工具
    中英術(shù)語的運(yùn)用風(fēng)格
    英文術(shù)語采用原則
    版面字形風(fēng)格
    源碼形式與下載
    在線服務(wù)
    推薦讀物
第1章 STL 概論與版本簡介
    1.1 STL 概論        
        1.1.1 STL的歷史
        1.1.2 STL與C++ 標(biāo)準(zhǔn)程序庫
    1.2 STL 六大組件 - 功能與運(yùn)用
    1.3 GNU源碼開放精神
    1.4 HP STL實(shí)現(xiàn)版本
    1.5 P.J. Plauger STL實(shí)現(xiàn)版本
    1.6 Rouge Wave STL實(shí)現(xiàn)版本
    1.7 STLport 實(shí)現(xiàn)版本
    1.8 SGI STL實(shí)現(xiàn)版本 總覽
        1.8.1 GNU C++ header 文件分布
        1.8.2 SGI STL 文件分布與簡介
            STL 標(biāo)準(zhǔn)頭文件(無擴(kuò)展名)
            C++ 標(biāo)準(zhǔn)規(guī)格定案前,HP規(guī)范的STL頭文件(擴(kuò)展名 .h)
            SGI STL 內(nèi)部文件(SGI STL真正實(shí)現(xiàn)于此)
        1.8.3 SGI STL 的組態(tài)設(shè)定(configuration)    
    1.9可能令你困惑的C++ 語法            
        1.9.1 stl_config.h 中的各種組態(tài)
            組態(tài)3:static template member
            組態(tài)5:class template partial specialization
            組態(tài)6:function template partial order
            組態(tài)7:explicit function template arguments
            組態(tài)8:member templates
            組態(tài)10:default template argument depend on previous template parameters
            組態(tài)11:non-type template parameters
            組態(tài):bound friend template function    
            組態(tài):class template explicit specialization    
        1.9.2 臨時(shí)對(duì)象的產(chǎn)生與運(yùn)用    
        1.9.3 靜態(tài)常數(shù)整數(shù)成員在class 內(nèi)部直接初始化
              in-class static const integral data member initialization
        1.9.4 increment/decrement/dereference 運(yùn)算子
        1.9.5 "前閉后開"區(qū)間表示法 [ )
        1.9.6 function call運(yùn)算子(operator())
第2章 空間配置器(allocator)
    2.1 空間配置器的標(biāo)準(zhǔn)接口
        2.1.1 設(shè)計(jì)一個(gè)簡單的空間配置器,JJ::allocator
    2.2 具備次配置力(sub-allocation)的SGI 空間配置器
        2.2.1 SGI 標(biāo)準(zhǔn)的空間配置器,std::allocator    
        2.2.2 SGI 特殊的空間配置器,std::alloc
        2.2.3 構(gòu)造和析構(gòu)基本工具:construct() 和 destroy()
        2.2.4 空間的配置與釋放,std::alloc    
        2.2.5 第一級(jí)配置器 __malloc_alloc_template 剖析
        2.2.6 第二級(jí)配置器 __default_alloc_template剖析
        2.2.7 空間配置函數(shù)allocate()
        2.2.8 空間釋放函數(shù)deallocate()
        2.2.9 重新充填free-lists
        2.2.10 內(nèi)存池(memory pool)
    2.3 內(nèi)存基本處理工具
        2.3.1 uninitialized_copy
        2.3.2 uninitialized_fill
        2.3.3 uninitialized_fill_n
第3章 迭代器(iterators)概念與 traits 編程技法                    079
    3.1 迭代器設(shè)計(jì)思維 - STL關(guān)鍵所在
    3.2 迭代器是一種 smart pointer
    3.3 迭代器相應(yīng)型別(associated types)
    3.4 Traits 編程技法 - STL源碼門鑰
             Partial Specialzation(偏特化)的意義
        3.4.1 迭代器相應(yīng)型別之一value_type
        3.4.2 迭代器相應(yīng)型別之二difference_type
        3.4.3 迭代器相應(yīng)型別之三pointer_type
        3.4.4 迭代器相應(yīng)型別之四reference_type
        3.4.5 迭代器相應(yīng)型別之五iterator_category
        以advanced() 為例
        消除 "單純傳遞調(diào)用函數(shù)"
        以distance() 為例
    3.5 std::iterator class 的保證
    3.6 iterator相關(guān)源碼完整重列
    3.7 SGI STL的私房菜:__type_traits
第4章 序列式容器(sequence containers)
    4.1 容器概觀與分類
        4.1.1 序列式容器(sequence containers)
    4.2 vector
        4.2.1 vector 概述
        4.2.2 vector 定義摘要
        4.2.3 vector 的迭代器
        4.2.4 vector 的數(shù)據(jù)結(jié)構(gòu)
        4.2.5 vector 的構(gòu)造與內(nèi)存管理:constructor, push_back
        4.2.6 vector 的元素操作:pop_back, erase, clear, insert
    4.3 list
        4.3.1 list 概述
        4.3.2 list 的節(jié)點(diǎn)(node)
        4.3.3 list 的迭代器
        4.3.4 list 的數(shù)據(jù)結(jié)構(gòu)
        4.3.5 list 的構(gòu)造與內(nèi)存管理:constructor, push_back, insert
        4.3.6 list 的元素操作:push_front, push_back, erase, pop_front,
             pop_back, clear, remove, unique, splice, merge, reverse, sort
    4.4 deque
        4.4.1 deque 概述
        4.4.2 deque 的中控器
        4.4.3 deque 的迭代器
        4.4.4 deque 的數(shù)據(jù)結(jié)構(gòu)
        4.4.5 deque 的構(gòu)造與內(nèi)存管理 :ctor, push_back, push_front
        4.4.6 deque 的元素操作:pop_back, pop_front, clear, erase, insert
    4.5 stack                                
        4.5.1 stack 概述
        4.5.2 stack 定義式完整列表
        4.5.3 stack 沒有迭代器
        4.5.4 以list 做為stack 的底層容器
    4.6 queue
        4.6.1 queue 概述
        4.6.2 queue 定義式完整列表
        4.6.3 queue 沒有迭代器
        4.6.4 以list 做為queue 的底層容器
    4.7 heap(隱式表述,implicit representation)
        4.7.1 heap 概述
        4.7.2 heap 算法
             push_heap
             pop_heap
             sort_heap
             make_heap
        4.7.3 heap 沒有迭代器
        4.7.4 heap 測(cè)試實(shí)例
    4.8 priority-queue
        4.8.1 priority-queue 概述
        4.8.2 priority-queue 定義式完整列表
        4.8.3 priority-queue 沒有迭代器    
        4.8.4 priority-queue 測(cè)試實(shí)例    
    4.9 slist                
        4.9.1 slist 概述            
        4.9.2 slist 的節(jié)點(diǎn)        
        4.9.3 slist 的迭代器        
        4.9.4 slist 的數(shù)據(jù)結(jié)構(gòu)        
        4.9.5 slist 的元素操作    
第5章 關(guān)聯(lián)式容器(associated containers)
    5.1 樹的導(dǎo)覽
        5.1.1 二元搜尋樹(binary search tree)
        5.1.2 平衡二元搜尋樹(balanced binary search tree)
        5.1.3 AVL tree(Adelson-Velskii-Landis tree)    
        5.1.4 單旋轉(zhuǎn)(Single Rotation)            
        5.1.5 雙旋轉(zhuǎn)(Double Rotation)
    5.2 RB-tree(紅黑樹)            
        5.2.1 插入節(jié)點(diǎn)            
        5.2.2 一個(gè)由上而下的程序        
        5.2.3 RB-tree 的節(jié)點(diǎn)設(shè)計(jì)        
        5.2.4 RB-tree 的迭代器        
        5.2.5 RB-tree 的數(shù)據(jù)結(jié)構(gòu)        
        5.2.6 RB-tree 的構(gòu)造與內(nèi)存管理    
        5.2.7 RB-tree 的元素操作        
             元素插入動(dòng)作 insert_equal    
             元素插入動(dòng)作 insert_unique    
             真正的插入執(zhí)行程序 __insert    
             調(diào)整RB-tree(旋轉(zhuǎn)及改變顏色)    
              元素的搜尋 find        
    5.3 set                
    5.4 map                
    5.5 multiset            
    5.6 multimap            
    5.7 hashtable        
        5.7.1 hashtable 概述    
             線性探測(cè)(linear probing)
             二次探測(cè)(quadratic probing)
             分離鏈(separate chaining)    
        5.7.2 hashtable 的桶子(buckets)與節(jié)點(diǎn)(nodes)
        5.7.3 hashtable 的迭代器                
        5.7.4 hashtable 的數(shù)據(jù)結(jié)構(gòu)            
        5.7.5 hashtable 的構(gòu)造與內(nèi)存管理            
            插入動(dòng)作(insert)與表格重整(resize)        
            判知元素的落腳處(bkt_num)    
            復(fù)制(copy_from)和整體刪除(clear)
        5.7.6 hashtable 運(yùn)用實(shí)例(find, count)
        5.7.7 hash functions            
    5.8 hash_set
    5.9 hash_map
    5.10 hash_multiset    
    5.11 hash_multimap    
第6章 算法(algorithms)    
    6.1 算法概觀        
        6.1.1 算法分析與復(fù)雜度表示 O( )
        6.1.2 STL算法總覽            
        6.1.3 mutating algorithms - 會(huì)改變操作對(duì)象之值
        6.1.4 nonmutating algorithms - 不改變操作對(duì)象之值    
        6.1.5 STL算法的一般形式
    6.2 算法的泛化過程
    6.3 數(shù)值算法 <stl_numeric.h>
        6.3.1 運(yùn)用實(shí)例    
        6.3.2 accumulate
        6.3.3 adjacent_difference
        6.3.4 inner_product    
        6.3.5 partial_sum
        6.3.6 power    
        6.3.7 itoa    
    6.4 基本算法 <stl_algobase.h>
        6.4.1 運(yùn)用實(shí)例        
        6.4.2 equal        
              fill        
              fill_n        
              iter_swap        
              lexicographical_compare
              max, min            
              mismatch            
              swap        
        6.4.3 copy,強(qiáng)化效率無所不用其極
        6.4.4 copy_backward         
    6.5  Set 相關(guān)算法(應(yīng)用于有序區(qū)間)    
        6.5.1 set_union            
        6.5.2 set_intersection        
        6.5.3 set_difference        
        6.5.4 set_symmetric_difference    
    6.6 heap算法:make_heap, pop_heap, push_heap, sort_heap
    6.7 其它算法                        
        6.7.1 單純的數(shù)據(jù)處理                
            adjacent_find
            count     
            count_if     
              find     
              find_if     
              find_end  
              find_first_of
              for_each     
              generate     
              generate_n
              includes (應(yīng)用于有序區(qū)間)    
              max_element        
              merge (應(yīng)用于有序區(qū)間)    
              min_element        
              partition         
              remove
              remove_copy    
              remove_if        
              remove_copy_if    
              replace        
              replace_copy    
              replace_if    
              replace_copy_if
              reverse        
              reverse_copy    
              rotate        
              rotate_copy    
              search        
              search_n        
              swap_ranges    
              transform        
              unique        
              unique_copy    
        6.7.2 lower_bound (應(yīng)用于有序區(qū)間)    
        6.7.3 upper_bound (應(yīng)用于有序區(qū)間)    
        6.7.4 binary_search (應(yīng)用于有序區(qū)間)    
        6.7.5 next_permutation            
        6.7.6 prev_permutation            
        6.7.7 random_shuffle            
        6.7.8 partial_sort / partial_sort_copy    
        6.7.9 sort                
        6.7.10 equal_range(應(yīng)用于有序區(qū)間)    
        6.7.11 inplace_merge(應(yīng)用于有序區(qū)間)    
        6.7.12 nth_element            
        6.7.13 merge sort            
第7章 仿函數(shù)(functor,另名 函數(shù)對(duì)象function objects)
    7.1 仿函數(shù)(functor)概觀            
    7.2 可配接(adaptable)的關(guān)鍵            
        7.2.1 unary_function            
        7.2.2 binary_function            
    7.3 算術(shù)類(Arithmetic)仿函數(shù)          
        plus, minus, multiplies, divides, modulus, negate, identity_element
    7.4 關(guān)系類(Relational)仿函數(shù)            
        equal_to, not_equal_to, greater, greater_equal, less, less_equal
    7.5 邏輯運(yùn)算類(Logical)仿函數(shù)            
        logical_and, logical_or, logical_not
    7.6 證同(identity)、選擇(select)、投射(project)    
        identity, select1st, select2nd, project1st, project2nd
第8章 配接器(adapter)                    
    8.1 配接器之概觀與分類                    
        8.1.1 應(yīng)用于容器,container adapters
        8.1.2 應(yīng)用于迭代器,iterator adapters
             運(yùn)用實(shí)例            
        8.1.3 應(yīng)用于仿函數(shù),functor adapters
             運(yùn)用實(shí)例            
    8.2 container adapters        
        8.2.1 stack            
        8.2.2 queue        
    8.3 iterator adapters     
        8.3.1 insert iterators    
        8.3.2 reverse iterators
        8.3.3 stream iterators (istream_iterator, ostream_iterator)
    8.4 function adapters                    
        8.4.1 對(duì)傳回值進(jìn)行邏輯否定:not1, not2            
        8.4.2 對(duì)參數(shù)進(jìn)行系結(jié)(綁定):bind1st, bind2nd
        8.4.3 用于函數(shù)合成:compose1, compose2(未納入標(biāo)準(zhǔn))
        8.4.4 用于函數(shù)指針:ptr_fun        
        8.4.5 用于成員函數(shù)指針:mem_fun, mem_fun_ref
附錄A  參考資料與推薦讀物(Bibliography)        
附錄B  侯捷網(wǎng)站簡介                
附錄C  STLport 的移植經(jīng)驗(yàn)(by 孟巖)    
        Borland C++Builder 5            
        Microsoft Visual C++ 6.0        
索引

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)