C STL/ (3) vector
本節我們主要講一下幾個部分: vector容器的基本概念 什麼是vector容器 vector容器的功能 vector容器的實現原理 vector容器常用API vector容器建構函式 vector賦值 vector元素存取 vector大小 vector插入刪除 vector的swap方法及小技 […]
-->
程式前沿 幫助程式設計師解決問題,增加專業技能,提升個人能力與未來世界競爭力。
本節我們主要講一下幾個部分: vector容器的基本概念 什麼是vector容器 vector容器的功能 vector容器的實現原理 vector容器常用API vector容器建構函式 vector賦值 vector元素存取 vector大小 vector插入刪除 vector的swap方法及小技 […]
deque是常見的雙端陣列。用處很廣,本節就介紹相關概念並實現一個簡單的評委打分系統。 deque的基本概念 什麼是deque? deque的功能 deque的實現方法 deque常用API deque建構函式 deque賦值 deque元素存取 deque大小 deque插入與刪除 deque應用 […]
棧和佇列一直是資料結構中的熱門話題。STL自然也有對兩者的封裝。 我們在這裡談一些老生常談的話題。資料結構分為線性結構和非線性結構。線性結構包括受限線性表,一般線性表和廣義線性表。受限線性表包括,字串,棧和佇列。廣義線性表包括陣列和廣義表。非線性結構包括集合,樹和圖。其中樹分為一般樹和二叉樹;圖分為 […]
預備知識 二叉樹 樹的任意一個結點都最多隻有兩個結點。 二叉搜尋樹 樹的任意一個結點的值都比該結點的左子樹中的任意一個結點的值大;同時比該結點右子樹中的任意結點的值小。 平衡二叉樹(紅黑樹RB-tree是平衡二叉樹的一種) 針對二叉搜尋樹搜尋效能不穩定這個問題。我們跟進一步發明了平衡二叉樹。平衡二叉 […]
map基本概念 什麼是map? map是一種關聯型容器。map中的元素是按照key-value的方式儲存的。也就是說一個map元素包含兩個值。且map排序的規則是按key的大小來排序的。 map的功能&特點 輸入無序,輸出按key排序。 不能通過iterator去修改map中元素的值,因為這 […]
我們在前面講了stl中常見的容器:順序容器(string,vector,deque,stack,queue,list)和關聯式容器(set,map)。 本節主要討論一下,以上各種容器中,資料是如何傳遞的。 資料的傳遞的方式主要有一下幾種: 傳值:一份資料,進行值傳遞,會在記憶體空間上開闢多份儲存空間 […]
我們在介紹容器set的時候就涉及到了函式物件這個概念,本節就是在原來的基礎之上,系統深入的談一談STL中的函式物件。 函式物件的基本概念 函式物件本質上是一個類而不是一個函式 函式物件過載了運算子(),從而使物件能夠像函式一樣的被呼叫 函式物件與普通函式的對比 函式物件超出了普通函式的功能,能夠儲存 […]
我們在前一節介紹了函式物件的概念,本節介紹基於函式物件的一個概念–函式物件介面卡。 在講函式物件介面卡之前,我們來講一講普通函式,函式物件和函式物件介面卡的關係。 普通函式是對程式功能的一種封裝。這種封裝只提供了方法,卻沒有提供屬性。所以當我們希望使用某些屬性時,我們往往使用普通函式的升級版–函式物 […]
在前面的blog中,我們介紹了順序容器(string,vector,deque,list,stack,queue)和關聯容器(set,multiset,map,multimap)。本節,我們就來總結一下以上這些容器使用中的異同。 順序容器 容器名稱 初始化 賦值 元素存取 大小 插入和刪除 擴充套件 […]
STL中的演算法由標頭檔案algorithm functional numeric這3個檔案組成。 STL演算法分為質變演算法和非質變演算法 我們將在剩下的blog中講述STL中常用的一些演算法,包括:遍歷,查詢,排序,拷貝,替換,算術生成,集合演算法等內容。 本節主要講述STL中常用的遍歷演算法。 […]