STL與泛型編程 Week2 (Boolan) by Im4lish

1-源代碼之分布(VC,GCC)
2-OOP(面向?qū)ο缶幊蹋?vs. GP(泛型編程)
OOP試圖將datas和methods聯(lián)系在一起。數(shù)據(jù)和操作都放置在類中橱脸,數(shù)據(jù)是類本身的成員,方法通過(guò)類對(duì)象來(lái)調(diào)用分苇。
例如

template <class T,
                 class Alloc = alloc>
class list {
···
    void sort()
  };
///每一個(gè)容器元素各帶有一個(gè)sort方法

GP試圖將datas和methods分開(kāi)來(lái)添诉。將methods設(shè)置為全局函數(shù)來(lái)接受數(shù)據(jù)。
例如

template <class T,
                 class Alloc = alloc>
class vector{
···
  };
template <class T,
                 class Alloc = alloc
                 size_t Bufsiz = 0>
class deque{
···
  };
template<typename _RandomAccessIterator>
inline void 
sort(_RandomAccessIterator __first,
       _RandomAccessIterator  __last)
{
···
}
//不止以上兩個(gè)容器医寿,凡是只要提供了_RandomAccessIterator  的容器均可以使用該sort函數(shù)栏赴。

采用GP可以得到低耦合度的代碼。
3-技術(shù)基礎(chǔ):操作符重載and模板(泛化靖秩、全特化须眷、偏特化)
泛化

template <class T>
class xxx {
···
};

特化

template<> class xxx<x> {
···
};

個(gè)數(shù)偏特化

/*
template <class T, class Alloc = alloc>
class vector
{
···
};
*/
template<class Alloc>
class vector<bool, Alloc>
{
···
};

范圍偏特化

template <class T>
class xxx {
···
};
template <class T>
class xxx<T*> {//接受指針參數(shù)
···
};

4-分配器
分配器底層由malloc乌叶,主要目的是為了節(jié)省內(nèi)存空間,減少多余的overhead柒爸。
5-容器之間的實(shí)現(xiàn)關(guān)系與分類

容器

6-深度探索list
list容器是一種包含前驅(qū)指針和后向指針的雙向鏈表准浴。

7-迭代器的設(shè)計(jì)原則和Iterator Traits的作用與設(shè)計(jì)
Iterator必須提供5種的associate types

typedef xxx iterator_category;
typedef T    value_type;
typedef Ptr pointer;
typedef Ref reference;
typedef ptrdiff_t difference_type;
Iterator Traits的框架

8-vector深度探索
一般實(shí)現(xiàn)中,vector容器的容積以二倍的形式增長(zhǎng)捎稚,而在增長(zhǎng)的過(guò)程中乐横,由于vector是一個(gè)連續(xù)容器,會(huì)有消去原來(lái)所占有內(nèi)存的多余開(kāi)銷今野。
9-array&forword_list深度探索
array相對(duì)于內(nèi)置數(shù)組提娜佳了容器的特性葡公,可被用來(lái)完全替代數(shù)組。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末条霜,一起剝皮案震驚了整個(gè)濱河市催什,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宰睡,老刑警劉巖蒲凶,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異拆内,居然都是意外死亡旋圆,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門麸恍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)灵巧,“玉大人,你說(shuō)我怎么就攤上這事抹沪】桃蓿” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵融欧,是天一觀的道長(zhǎng)敏弃。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蹬癌,這世上最難降的妖魔是什么权她? 我笑而不...
    開(kāi)封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮逝薪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝴罪。我一直安慰自己董济,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布要门。 她就那樣靜靜地躺著虏肾,像睡著了一般廓啊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上封豪,一...
    開(kāi)封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天谴轮,我揣著相機(jī)與錄音,去河邊找鬼吹埠。 笑死第步,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缘琅。 我是一名探鬼主播粘都,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼刷袍!你這毒婦竟也來(lái)了翩隧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤呻纹,失蹤者是張志新(化名)和其女友劉穎堆生,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體雷酪,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顽频,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了太闺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糯景。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖省骂,靈堂內(nèi)的尸體忽然破棺而出蟀淮,到底是詐尸還是另有隱情,我是刑警寧澤钞澳,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布怠惶,位于F島的核電站,受9級(jí)特大地震影響轧粟,放射性物質(zhì)發(fā)生泄漏策治。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一兰吟、第九天 我趴在偏房一處隱蔽的房頂上張望通惫。 院中可真熱鬧,春花似錦混蔼、人聲如沸履腋。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)遵湖。三九已至悔政,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間延旧,已是汗流浹背谋国。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留迁沫,地道東北人芦瘾。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像弯洗,于是被迫代替她去往敵國(guó)和親旅急。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容