溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

1 STL概論 版本介紹

發(fā)布時(shí)間:2020-06-22 01:22:45 來源:網(wǎng)絡(luò) 閱讀:407 作者:momo462 欄目:編程語言

1、為什么要建立STL:程序的復(fù)用性的提升(建立在標(biāo)準(zhǔn)之上)

2、STL的價(jià)值:

                        1)STL帶來了極具實(shí)用價(jià)值的組件

                        2)以泛型思想為基礎(chǔ)的”軟件組件分類學(xué)"

3、一句話總結(jié)STL

     STL實(shí)現(xiàn)的的是以抽象概念構(gòu)架起的接口標(biāo)準(zhǔn)。

     在這個(gè)接口下,任何組件相互獨(dú)立;任何組件通過Iterator膠合;通過adaptor配接;通過functor選擇     

     policy。

4、STL形成

     class:自定義類別 

     template:將類別參數(shù)化

     traits:編程技巧

     通過這個(gè)三者,形成STL

5、STL六大組件

     1、容器container:裝數(shù)據(jù)的結(jié)構(gòu)——是一種class template 模板類(vector,list,deque,set,map)

     2、算法algorithm:是一種function template 模板函數(shù) (sort,search,copy,erase。。。。。)

     3、迭代器Iterator:容器和算法之間的膠合劑,所謂的“泛型指針”;是一種將operator*指針操作進(jìn)行重載的class template

     4、仿函數(shù)functor:行為類似函數(shù),可作為算法的某種策略;是一種重載operator()的class或者class template

     5、配接器adaptor:一種用來修飾容器、仿函數(shù)、迭代器的接口的東西(stack,queue--底層借助deque)

     6、配置器allocator:負(fù)責(zé)空間配置和管理,是一個(gè)實(shí)現(xiàn)動態(tài)空間配置、空間管理、空間釋放的class template


6、STL六大組件交互關(guān)系:

     Container通過Allocator取得數(shù)據(jù)存儲空間,Algorithm通過Iterator存取Container內(nèi)容,F(xiàn)unctor可以協(xié)助Algorithm而按成不同的策略變話,Adaptor可以修飾或套接Functor


7、STL組態(tài)(SGI)

SGI STL準(zhǔn)備了一個(gè)環(huán)境組態(tài)文件<stl_config.h>,其中定義了許多常量,標(biāo)示某些組件是否成立,所有STL頭文件都會間接或直接包含這個(gè)組態(tài)文件,并一條件式寫法哦,讓pre-processor根據(jù)各個(gè)常量決定取舍哪段程序代碼

8、臨時(shí)對象—應(yīng)用于仿函數(shù)與算法的搭配

臨時(shí)對象:無名對象,非預(yù)期產(chǎn)生的話會造成效率負(fù)擔(dān)

                (傳值調(diào)用,都會引發(fā)copy操作,產(chǎn)生臨時(shí)對象)

刻意制造臨時(shí)對象:在類型名后面加(),并可指定初值 eg:Shape(3,5)或int(8),相當(dāng)于調(diào)用相應(yīng)構(gòu)造,但是不指定對象名稱

9、靜態(tài)常量×××數(shù)據(jù)成員(整數(shù)類型不等于int)在class內(nèi)部直接給予初值

    static const  int/short/long/long long/char xxxx=123;

10、++,- - ,*在iterator中占重要地位,盡量多用前置,少用后置

       前置返回值,++i,i的引用

       后置返回值,i++,i自增前的const臨時(shí)對象

       后置實(shí)現(xiàn)建立在前置基礎(chǔ)上

11、iterator所表示范圍為【first,last),實(shí)際范圍【first,last-1】,last表示最后一個(gè)元素的下個(gè)位置  first!=last常作為循環(huán)條件



        


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI