c stl

1/2ページ

C STL/ (5) stack&queue

棧和佇列一直是資料結構中的熱門話題。STL自然也有對兩者的封裝。 我們在這裡談一些老生常談的話題。資料結構分為線性結構和非線性結構。線性結構包括受限線性表,一般線性表和廣義線性表。受限線性表包括,字串,棧和佇列。廣義線性表包括陣列和廣義表。非線性結構包括集合,樹和圖。其中樹分為一般樹和二叉樹;圖分為 […]

C STL/ (7) set

預備知識 二叉樹 樹的任意一個結點都最多隻有兩個結點。 二叉搜尋樹 樹的任意一個結點的值都比該結點的左子樹中的任意一個結點的值大;同時比該結點右子樹中的任意結點的值小。 平衡二叉樹(紅黑樹RB-tree是平衡二叉樹的一種) 針對二叉搜尋樹搜尋效能不穩定這個問題。我們跟進一步發明了平衡二叉樹。平衡二叉 […]

C STL/ (9) STL容器中資料的傳遞

我們在前面講了stl中常見的容器:順序容器(string,vector,deque,stack,queue,list)和關聯式容器(set,map)。 本節主要討論一下,以上各種容器中,資料是如何傳遞的。 資料的傳遞的方式主要有一下幾種: 傳值:一份資料,進行值傳遞,會在記憶體空間上開闢多份儲存空間 […]

C STL/ (11) 函式物件

我們在介紹容器set的時候就涉及到了函式物件這個概念,本節就是在原來的基礎之上,系統深入的談一談STL中的函式物件。 函式物件的基本概念 函式物件本質上是一個類而不是一個函式 函式物件過載了運算子(),從而使物件能夠像函式一樣的被呼叫 函式物件與普通函式的對比 函式物件超出了普通函式的功能,能夠儲存 […]

C STL/ (12) 函式物件介面卡

我們在前一節介紹了函式物件的概念,本節介紹基於函式物件的一個概念–函式物件介面卡。 在講函式物件介面卡之前,我們來講一講普通函式,函式物件和函式物件介面卡的關係。 普通函式是對程式功能的一種封裝。這種封裝只提供了方法,卻沒有提供屬性。所以當我們希望使用某些屬性時,我們往往使用普通函式的升級版–函式物 […]

C STL/ (13) 常用遍歷演算法

STL中的演算法由標頭檔案algorithm functional numeric這3個檔案組成。 STL演算法分為質變演算法和非質變演算法 我們將在剩下的blog中講述STL中常用的一些演算法,包括:遍歷,查詢,排序,拷貝,替換,算術生成,集合演算法等內容。 本節主要講述STL中常用的遍歷演算法。 […]