一.vector的基本用法:
成員函式
變數vector()
無參建構函式,將容器初始化為空
vector(int n)
將容器初始化為有 n 個元素
vector(int n,const t & val)
假定元素的型別是 t,此建構函式將容器初始化為有 n 個元素,每 個元素的值都是 val
vector(iterator first, iterator last)
first 和 last 可以是其他容器的迭代器。一般來說,本建構函式初始化的結果就是將 vector 容器的內容變成與其他容器上的區間 [first, last) —致
void clear()
刪除所有元素
bool empty()
判斷容器是否為空
void pop_back()
刪除容器末尾的元素
void push_back( const t & val)
將 val 新增到容器末尾
int size()
返回容器中元素的個數
t & front()
返回容器中第乙個元素的引用
t & back()
返回容器中最後乙個元素的引用
iterator insert(iterator i, const t & val)
將 val 插入迭代器 i 指向的位置,返回 i
iterator insert( iterator i, iterator first, iterator last)
將其他容器上的區間 [first, last) 中的元素插入迭代器 i 指向的位置
iterator erase(iterator i)
刪除迭代器 i 指向的元素,返回值是被刪元素後面的元素的迭代器
iterator erase(iterator first, iterator last)
刪除容器中的區間 [first, last)
void swap( vector & v)
將容器自身的內容和另乙個同型別的容器 v 互換
二.list的基本用法:
注意:list 的建構函式和許多成員函式的用法都與 vector 類似,list還獨有如下表所示。
成員函式
變數void push_front(const t & val)
將 val 插入鍊錶最前面
void pop_front()
刪除鍊錶最前面的元素
void sort()
將鍊錶從小到大排序
void remove (const t & val)
刪除和 val 相等的元素
remove_if
刪除符合某種條件的元素
void unique()
刪除所有和前乙個元素相等的元素
void merge(list & x)
將鍊錶 x 合併進來並清空 x。要求鍊錶自身和 x 都是有序的
void splice(iterator i, list & x, iterator first, iterator last)
在位置 i 前面插入鍊錶 x 中的區間 [first, last),並在鍊錶 x 中刪除該區間。鍊錶自身和鍊錶 x 可以是同乙個鍊錶,只要 i 不在 [first, last) 中即可
三.deque的基本用法:
注意:deque 的建構函式和許多成員函式的用法都與 vector 類似,deque還獨有如下表所示。
成員函式
變數void push_front (const t & val)
將 val 插入容器的頭部
void pop_front()
刪除容器頭部的元素
vector,list,deque。用法區別
stl提供了三個最基本的容器 vector,list,deque。vector和built in陣列類似,它擁有一段連續的記憶體空間,並且起始位址不變,因此它能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝,另外,當該陣列後的記憶體空間不夠...
vector,list,deque。用法區別
stl提供了三個最基本的容器 vector,list,deque。vector和built in陣列類似,它擁有一段連續的記憶體空間,並且起始位址不變,因此它能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝,另外,當該陣列後的記憶體空間不夠...
如何選擇vector list deque
我想把三個常用的序列式放在一起對比一下是有必要的 vector vector和built in陣列類似,擁有一段連續的記憶體空間,能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝,另外,當插入較多的元素後,預留記憶體空間可能不夠,需要重新申...