GeekBand筆記: STL與泛型編程(1)

Templates and Generic Programming

  • 泛型技術(shù)。比如:模板技術(shù),RTTI技術(shù)蓬推,虛函數(shù)技術(shù),要么是試圖做到在編譯時決議澡腾,要么試圖做到運行時決議拳氢。
  • 模板是泛型編程的基礎(chǔ)

模板 template

  • 模板不是類或函數(shù),可以將模板看作編譯器生成類或者函數(shù)的一份說明書;
  • 編譯器根據(jù)模板創(chuàng)建類或者函數(shù)的過程稱為模板的實例化(instantiation);
  • 使用模板時蛋铆,必須(隱式或顯式)指定模板實參
    • 顯式模板實參(explicit template argument)
    max<int> (1, 3.0); //function template
    Blob<int> a; //class template 必須顯式指定
    
    • 隱式模板實參(implicit template argument)
    max(1, 2); //function template
    

函數(shù)模板(function template)

template<template parameter list>
template<typename T1, typename T2>

函數(shù)模板實例化 instantiate

When the compiler instantiates a template, it creates a new “instance” of
the template using the actual template argument(s) in place of the
corresponding template parameter(s).

非類型模板參數(shù)(nontype parameter)

template <unsigned N, unsigned M>
inline int compare(const char (&p1)[N], const char (&p2)[M]) {
    return strcmp(p1, p2);
};

// 非類型模板參數(shù)的模板實參必須是常量表達式
cout << compare("a", "ba") << endl;

類模板(class template)

類模板的實例化

  • 類模板實例化必須提供顯式模板實參
Blob<int> ia;
Blob<int> ia2 = {0, 1, 2, 3, 4};
  • 一個實例化了的類模板馋评,其成員函數(shù)只有在使用時才被實例化
Blob<int> ia2 = {0, 1, 2, 3, 4}; // 類模板實例化
ia2.size(); // 實例化 Blob<int>::size() const

container

順序容器 sequential container

  • vector

  • deque

  • list

  • forward_list

  • array

  • string

Tips

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市刺啦,隨后出現(xiàn)的幾起案子留特,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜕青,死亡現(xiàn)場離奇詭異苟蹈,居然都是意外死亡,警方通過查閱死者的電腦和手機右核,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門慧脱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贺喝,你說我怎么就攤上這事菱鸥。” “怎么了躏鱼?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵氮采,是天一觀的道長。 經(jīng)常有香客問我染苛,道長鹊漠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任茶行,我火速辦了婚禮躯概,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畔师。我一直安慰自己楞陷,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布茉唉。 她就那樣靜靜地躺著固蛾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪度陆。 梳的紋絲不亂的頭發(fā)上艾凯,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音懂傀,去河邊找鬼趾诗。 笑死,一個胖子當(dāng)著我的面吹牛蹬蚁,可吹牛的內(nèi)容都是我干的恃泪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼犀斋,長吁一口氣:“原來是場噩夢啊……” “哼贝乎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叽粹,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤览效,失蹤者是張志新(化名)和其女友劉穎却舀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锤灿,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡挽拔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了但校。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片螃诅。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖状囱,靈堂內(nèi)的尸體忽然破棺而出术裸,到底是詐尸還是另有隱情,我是刑警寧澤浪箭,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站辨绊,受9級特大地震影響奶栖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜门坷,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一宣鄙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧默蚌,春花似錦冻晤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锦茁,卻和暖如春攘轩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背码俩。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工度帮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稿存。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓笨篷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓣履。 傳聞我的和親對象是個殘疾皇子率翅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

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

  • 1.模板觀念與函數(shù)模板 課程主要內(nèi)容 C++模板簡介 泛型編程 容器 進階 C++模板簡介 ??generic t...
    hui1429閱讀 326評論 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,519評論 1 51
  • 1.定義模板 1.1函數(shù)模板template<模板參數(shù)列表>返回值 函數(shù)名(形參列表) 實例化函數(shù)模板通過形參列表...
    huManYang閱讀 302評論 0 0
  • C++ 模板簡介 一、模板 使用模板的目的就是能夠讓程序員編寫與類型無關(guān)的代碼袖迎。 模板是一種對類型進行參數(shù)化的工具...
    MinoyJet閱讀 2,374評論 0 12
  • 學(xué)生作文的訓(xùn)練安聘,從某種意義上看痰洒,是師生之間以學(xué)生的作文文本來進行的一種輔導(dǎo)和對話。老師對文本進行分析浴韭,找出亮點和不...
    胡天8月閱讀 171評論 0 0