STL 序列式容器篇(未完成)
阿新 • • 發佈:2018-12-12
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拷貝,傳回新資料的位置 |