侯捷 STL和泛型程式設計(下)
本篇記錄學習《侯捷 STL和泛型程式設計》下半部分。
16、vector深度探索
17、array、forward_list深度探索
18—19、deque、queue和 stack深度探索
20、RB-tree 深度探索
21、 set、multiset深度探索
22、map、multimap深度探索
23—24、hashtable深度探索
25、hash_set、hash_multiset, hash_map、hash_multimap概念
26、 unordered容器概念
27、 演算法的形式
28、迭代器的分類(category)
29、迭代器分類(category)對演算法的影響
30、演算法原始碼剖析(11個例子)
31、仿函式和函式物件
32、存在多種Adapter
33、Binder2nd
34、not1
35、bind
相關推薦
侯捷 STL和泛型程式設計(下)
本篇記錄學習《侯捷 STL和泛型程式設計》下半部分。 16、vector深度探索 17、array、forward_list深度探索 18—19、deque、queue和 stack深度探索 20、RB-tree 深度探索 21、 set、multi
侯捷 STL和泛型程式設計(上)
本篇記錄學習《侯捷 STL和泛型程式設計》 1、認識headers、版本、重要資源 C++標準庫的70%是C++標準模板庫,還有其他部分佔30%左右,C++標準模板庫包含演算法,分配器等六大部分。 2、STL體系結構基礎介紹 (1)前閉後開區間 [ ),例如 物件都有c.beg
C++ STL標準庫與泛型程式設計(一)
泛型程式設計,就是使用模板為主要工具來編寫程式。其中沒有太多的面向物件的觀念,不涉及虛擬函式的使用。 使用C++標準庫 C++標準庫:以程式碼形式給出,放於各種標頭檔案( header files )內,經過編譯後才能使用。 所有新式的 headers 內的元件封裝於 namespace
CoreJava讀書筆記--泛型程式設計(二)
泛型程式設計(二) 泛型程式碼和虛擬機器 虛擬機器沒有泛型型別物件。這句話可以理解為虛擬機器不認識泛型類,它仍然只認識普通類。 (一)型別擦除 什麼是型別擦除? 無論何時定義一個泛型型別,都自動提供了一個相應的原始型別。原始型別的名字就是刪去型別引數後的泛型型別名。
effective C++筆記--模板與泛型程式設計(三)
文章目錄 請使用traits classes表現型別資訊 認識模板超程式設計 請使用traits classes表現型別資訊 . traits並不是C++的關鍵字或是預先定義好的構件,它們是一種技術,也是一個C++程式設計師共同遵守的協議
effective C++筆記--模板與泛型程式設計(二)
文章目錄 運用成員函式模板接受所有相容型別 需要型別轉換時請為模板定義非成員函式 運用成員函式模板接受所有相容型別 . 真實指標做的很好的一件事是支援隱式轉換,派生類的指標可以指向基類的指標,指向非常量物件的指標可以指向轉換成常量物件的指
effective C++筆記--模板與泛型程式設計(一)
文章目錄 瞭解隱式介面和編譯器多型 瞭解typename的雙重意義 學習處理模板化基類內的名稱 將與引數無關的程式碼抽離template 瞭解隱式介面和編譯器多型 . 面向物件程式設計世界總是以顯式介面和執行期多型解決問題。比
泛型程式設計(一)
Java中增加泛型之前,泛型是使用繼承實現的(通用的Object) 這樣,get一個值的時候要進行強制型別轉換 add的時候沒有錯誤檢查,可以新增任何類的物件,不安全 加入型別引數以後,get直接拿到型別,不需要進行強制型別轉換 add的時候直接檢測,插入型別錯誤直接報錯,更加安全,可讀性好
模板與泛型程式設計(二)--《C++ primer》
通常在呼叫普通函式時,我們只要做到將函式的宣告放到其定義的前面,保證編譯器先掌握到函式的宣告,因此我們會把其函式宣告放到標頭檔案,而其定義放到原始檔當中;但是模板不同,為了生成一個例項化版本,編譯器需要掌握函式模板或類模板成員函式的定義,所以模板標頭檔案通常既包括宣告
侯捷 C++面向物件高階開發(下)筆記整理
C++面向物件高階開發(下) 一、導讀 (1)泛型程式設計和麵向物件程式設計分屬不同的思維, (2)由繼承關係所形成的物件模型,包含this指標,vptr指標,vtbl虛表,虛機制,以及虛擬函式造成的多型。 二、conversion function 轉換函式 (1)通過指定關鍵
C++Primer_Chap16_模板和泛型程式設計_List03_過載和模板_筆記
函式模板可以被另一個模板或普通非模板函式過載。與往常一樣,名字相同的函式必須具有不同數量和型別的引數。涉及函式模板,函式匹配規則會在以下幾方面受到影響: 對於一個呼叫,其候選函式包括所有模板實參推斷成功的函式模板例項 候選的函式模板總是可行的,因為模板實參推斷會排除任何
C++Primer_Chap16_模板和泛型程式設計_List02_模板實參推斷_筆記
從函式實參類確定模板實參的過程稱為模板實參推斷(template argument deduction)。 型別轉換和模板型別引數 如果一個函式形參的型別使用了模板型別引數,那麼它採用特殊的初始化規則。只有很有限的幾種型別轉換會自動應用於這些實參。編譯器通常不是對
C++Primer_Chap16_模板和泛型程式設計_List01_定義模板_筆記
面向物件變成(OOP)和泛型程式設計都能處理在編寫程式時不知道型別的情況。不同之處在於: OOP能處理型別在程式執行之前都未知的情況 泛型程式設計中,在編譯時就能獲知型別。 函式模板 我們可以定義一個通用的函式模板(function templ
C++Primer_Chap16_模板和泛型程式設計_List05_模板特例化_筆記
編寫單一模板,使之對任何可能的模板實參都是最合適的,都能例項化,這並不總是能辦到的。當我們不能(或不希望)使用模板版本時,可以定義類或函式模板的一個特例化版本。 定義函式模板特例化 當我們特例化一個函式模板時,必須為原模板中的每個模板引數都提供實參。為了指出我們正
C++Primer_Chap16_模板和泛型程式設計_List04_可變引數模板_筆記
一個可變引數模板(variable template)就是一個接受可變數目引數的模板函式或模板類。可變數目的引數被稱為引數包(parameter packet)。存在兩種引數寶: 模板引數包(template parameter packet),表示0個或多個模板引數
C++ 泛型程式設計(單詞數)
題目描述 lily的好朋友xiaoou333最近很空,他想了一件沒有什麼意義的事情,就是統計一篇文章裡不同單詞的總數。下面你的任務是幫助xiaoou333解決這個問題。 輸入 有多組資料,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,每
C++ 泛型程式設計(國名排序)
題目描述 問題描述:小李在準備明天的廣交會,明天有來自世界各國的客房跟他們談生意,小李要儘快的整理出名單給經理,你能幫他把客戶來自的國家按英文字典次序排好嗎? 例如小李手上有來自加拿大,美國,中國的名單,排好的名單應是美國,加拿大,中國 。 輸入 第1行為一個n(n&
C++迭代器和泛型程式設計的理解
今天讀到了primer plus的泛型程式設計迭代器部分(16章第四小節),稍作記錄 前面閱讀的部分,講了很多繼承,友元,還有模板類的概念;這些都有一個共同點,那就是提高程式碼的重用性;當然友元也不僅僅是這一方面,還有在資料方面的保護和隱私許可權考慮等。從提高程式碼的重用性
泛型程式設計(容器、迭代器、介面卡)
面向物件程式設計關注的是程式設計的資料方面,而泛型程式設計關注的是演算法。 迭代器(iterator) 模板使得演算法獨立於儲存的資料型別,而迭代器使演算法獨立於使用的容器型別。(演算法引數變為迭代器型別,而不是各種類物件,函式物件,型別引數?) 迭代器不是某種型別,而是一系列
面向過程、面向物件和泛型程式設計
1、面向物件和麵向過程 面向物件是儘可能模擬人類習慣的思維方式,使開發軟體的方法與過程儘可能接近人類認識世界解決問題的方法與過程。以事物為中心的程式設計思想,把構成問題事務分解成各個物件,建立物件的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。