標準模板庫

2021-08-20 07:32:18 字數 1227 閱讀 2198

stl是c++標準程式庫的核心,深刻影響了標準程式庫的整體結構,stl內的所有元件都由模板(template)構成,其元素可以是任意型別。

stl元件:

1容器(container) - 管理某類物件的集合

2迭代器(iterator) - 在物件集合上進行遍歷

3演算法(algorithm) - 處理集合內的元素

4容器介面卡(container adaptor)

5函式物件(functor)

stl容器元素的條件

1必須能夠通過拷貝建構函式進行複製

2必須可以通過賦值運算子完成賦值操作

3必須可以通過析構函式完稱銷毀動作

4序列式容器元素的預設建構函式必須可用

5某些動作必須定義operator ==,例如搜尋操作

6關聯式容器必須定義出排序準則,預設情況是過載operator <

對於基本資料型別(int,long,char,double,…)而言,以上條件總是滿足。

stl容器的共同能力是所有容器中存放的都是值而非引用。如果希望存放的不是副本,容器元素只能是指標。所有元素都形成乙個次序(order),可以按相同的次序一次或多次遍歷每個元素。

vector模擬動態陣列

vector的元素可以是任意型別t,但必須具備賦值和拷貝能力(具有public拷貝建構函式和過載的賦值操作符)必須包含的標頭檔案#includevector支援隨機訪問vector的大小(size)和容量(capacity)size返回實際元素個數,capacity返回vector能容納的元素最大數量。如果插入元素時,元素個數超過capacity,需要重新配置內部儲存器。

關於vector模擬動態陣列的操作:vectorc,產生空的vector。vectorc1(c2),產生同型別的c1,並將複製c2的所有元素。vectorc(n,e),產生乙個大小為n的vector,每個元素都是e。vectorc(n),利用型別t的預設建構函式和拷貝建構函式生成乙個大小為n的vector。vectorc(beg,end),產生乙個vector,以區間[beg,end]為元素初值。~vector(),銷毀所有元素並釋放記憶體。c.push_back(e),在尾部新增乙個元素e的副本。

maps/multimapsmap的元素是成對的鍵值/實值,內部的元素依據其值自動排序。map內的相同數值的元素只能出現一次,multimaps內可包含多個數值相同的元素。內部由二叉樹實現,便於查詢。

這裡的演算法很多還不會用,這也是挑著幾個重要的操作寫的。至於maps的了解還少,後面再聯絡理解

標準模板庫( ) 介紹標準模板庫

標準模板庫就是類與函式模板的大集合。stl共有6種元件 容器,容器介面卡,迭代器,演算法,函式物件和函式介面卡。1 容器 容器是用來儲存和組織其他物件的物件。stl容器類的模板在標準標頭檔案中定義。1 序列容器是上面圖中的前三類 容器的操作 2 deque容器 非常類似vector,且支援相同的操作...

標準模板庫

c primer plus是乙個精心設計的,在今天的乙個最重要的和廣泛使用的程式語言的完整教程。乙個方便和易於使用的自學指南,這本書是適當的節目都認真的學生以及已經精通其他語言的開發人員。第六版c primer plus已更新和擴大覆蓋在c 的最新進展,包括新的c 11標準的詳細介紹。作家和教育家史...

標準模板庫

vector iterator pd vector scores pd scores.begin pd 22.3 pd pd scores.end 指向容器最後乙個元素後面的那個元素scores.erase scores.begin scores.begin 2 第乙個迭代器指向區間的起始處,第二個...