1. 程式人生 > >STL 序列式容器篇(未完成)

STL 序列式容器篇(未完成)

STL中的容器可以分為序列式容器和關聯式容器。序列式容器指其中的元素都可序,但未必有序。在STL中提供了vector, list, deque, stack, queue, priority_queue等等序列式容器。其中stack和queue是由deque改頭換面而成。

本篇介紹STL中序列式容器的設計和使用方式。

 

一、vector

欲使用vector需要包含標頭檔案: #include <vector>

1.1 vector設計實現

vector的資料安排以及操作方式,和array特別類似;兩者的區別在於array是靜態的,分配完記憶體之後不能再改變了,而vector是動態的,隨著元素的加入,其自身會自動擴充空間以容納新的元素。也就是說如果vector當前申請的空間不夠用了,它會自動執行以下操作:申請一塊新的記憶體空間,將當前地址的舊元素一一賦值到新的地址空間中,最後將原來的空間歸還給系統。

》》》未完待續《《《

1.2 vector的使用

常用函式一覽表:

編號 函式名稱 函式解釋
1 void push_back(elem) 將elem插入到尾部
2 void pop_back() 刪除最後一個元素
3 reference front() 傳回第一個元素
4 reference back() 傳回最後一個元素
5 iterator erase(pos) 清除pos位置上的資料,傳回下一個資料的位置
6 size_t size() 返回容器中實際資料的個數
7 size_t capacity() 返回當前容器能容納的資料個數
8 void clear() 移除容器內的所有資料,容器能容納的資料的大小不變
9 bool empty() 判斷容器是否為空
10 void insert(pos, elem) 在pos位置插入一個elem拷貝,傳回新資料的位置