自制一套屬于自己的STL(前言)
各位看到標(biāo)題是不是被我唬住了?
如果是也別太緊張,我的水平其實(shí)一般般的。
想必各位在C++的編程過(guò)程中肯定用過(guò)STL(Standard?Template Libary),肯定也知道STL的強(qiáng)大與方便,所以在這個(gè)專(zhuān)欄里面,我會(huì)帶著大家寫(xiě)一套屬于自己的STL(肯定沒(méi)有標(biāo)準(zhǔn)庫(kù)寫(xiě)得好,但基礎(chǔ)功能還是有的)
之后我們主要會(huì)走以下這些流程:
了解STL
學(xué)習(xí)模板的知識(shí)
了解STL框架(容器、迭代器、分配器,組合)
動(dòng)手寫(xiě)一個(gè)Array——靜態(tài)數(shù)組
動(dòng)手寫(xiě)一個(gè)Allocator——分配器
動(dòng)手寫(xiě)一個(gè)Vector——?jiǎng)討B(tài)數(shù)組
動(dòng)手寫(xiě)一個(gè)Any——?jiǎng)討B(tài)類(lèi)型
動(dòng)手寫(xiě)一個(gè)Deque——雙端隊(duì)列
用Deque實(shí)現(xiàn)Queue——隊(duì)列、Stack——棧
動(dòng)手寫(xiě)一個(gè)RBTree——穩(wěn)定紅黑樹(shù)
用RBTree實(shí)現(xiàn)Set——集合、Map——映射
除了上面這些,我還打算做一些標(biāo)準(zhǔn)庫(kù)沒(méi)有的東西:
實(shí)現(xiàn)一個(gè)BigInt類(lèi)——高精度整數(shù)加減乘除
實(shí)現(xiàn)一個(gè)BigDec類(lèi)——高精度浮點(diǎn)數(shù)加減乘除
實(shí)現(xiàn)一個(gè)Picture類(lèi)——存圖和遍歷圖
實(shí)現(xiàn)一個(gè)FindUnion類(lèi)——封裝并查集
實(shí)現(xiàn)一個(gè)Range類(lèi)——實(shí)現(xiàn)python中range的作用并借用Base-For-Range特性
實(shí)現(xiàn)All_T和Any_T——python中的all和any
實(shí)現(xiàn)一個(gè)Hash表
最后,大家別太關(guān)注我的更新,我還是學(xué)生,所以更新的可能會(huì)有些慢,并且有的地方可能會(huì)有學(xué)術(shù)性錯(cuò)誤,希望看出來(lái)的大佬多多指正和幫助,謝謝!