1.5deque容器
deque容器為乙個給定型別的元素進行線性處理,就如向量,它能夠快速地隨機進入任乙個元素,並且能夠高效地
入和刪除容器的尾部元素。但它與vector不同,deque能支援高效插入和刪除容器的頭部元素,也叫做雙端佇列.
(1)建構函式
deque();建立乙個空deque
deque(int nsize) ;建立乙個deque,元素個數為nsize
deque(int nsize, const t& t);建立乙個deque,元素個數為nsize,且值均為t
deque (const deque &);拷貝建構函式
(2)增加函式
void push_front(const t& x);雙端佇列頭部增加乙個元素x
void push_back(const t& x);雙端佇列尾部增加乙個元素x
iterator insert(iterator it, const t& x);雙端佇列中某一元素前增加乙個元素x
void insert(iterator it, int n, const t& x);雙端佇列中某一元素前增加n個相同元素x
void insert(iterator it,const_iterator first, const_iterator last);
; 雙端佇列中某一元素前插入另乙個相同型別向量的[first,last)間的資料
(3)刪除函式
iterator erase(iterator it);;刪除雙端佇列中某乙個元素
iterator erase(iterator first, iterator last);刪除雙端佇列中[first,last)中元素
void pop_front();;刪除雙端佇列中最後乙個元素
void pop_back();;刪除雙端佇列中最後乙個元素
void clear();;刪除雙端佇列中所有元素
(4)遍歷函式
reference at(int pos);返回
pos位置元素的引用
reference front()
;返回首元素的引用
reference back()
;返回尾元素的引用
iterator begin()
;返回向量頭指標,指向第乙個元素
iterator end();返回向量尾指標,不包括最後乙個元素,在其下面
reverse_iterator rbegin()
;反向迭代器,功能等同
iterator end()
reverse_iterator rend()
;反向迭代器,功能等同
iterator begin()
(5)判斷函式
bool empty() const
;向量是否為空?若
true,
則向量中無元素。
大小函式
int size() const
;返回向量中元素的個數
int max_size() const
;返回最大可允許的雙端佇列元素數量值
(6)其它函式
void swap(vector&)
;交換兩個同型別向量的資料
void assign(int n, const t& x);
向量中第
n個元素設定成元素x
void assign(const_iterator first, const_iterator last);
向量中[first,last]
元素設定成當前
向量元素。
deque
中push_front
、pop_front
函式示例
#include#includeusing namespace std;
int main()
該段程式功能是:deque、vector初始化大小為2,第1個元素都為10,當通過push_back函式分別給兩容器
加乙個元素後,從結果發現原先保持的指標元素值對vector容器前後發生了變化,而對deque容器前後沒有
生變化.
以deque
為基礎,編乙個先進先出的佇列類。
#include#includeusing namespace std;
templateclass myqueue
;templatevoid myqueue::push(const t &t)
templatevoid myqueue::pop()
templateint myqueue::size()
templatebool myqueue::empty()
templatet &myqueue::front()
templatet &myqueue::back()
templatevoid myqueue::display()
myqueue.display();
myqueue.pop();
myqueue.display();
myqueue.push(6);
myqueue.display();
cout<
stl之序列容器 deque
相比於vector,deque是一種雙向開口的連續線性空間,可以在頭尾兩端分別做元素的插入和刪除操作。這也決定了其更賦值的容器結構。deque內部維護了start和finish 節點,用於雙端的插入和刪除 map,一塊連續空間,其每個元素都是個指標,指向乙個節點。其指向的節點中有四個元素 cur f...
STL通用容器之 list 容器
list容器 相對於vector的連續線性空間,list是乙個雙向鍊錶,它有乙個重要性質 插入操作和刪除操作都不會造成原有的list迭 器失效,每次插入或刪除乙個元素,就配置或釋放乙個元素空間。也就是說,對於任何位置的元素插入或刪除,list 遠是常數時間。1 建構函式 listc 建立乙個空的li...
STL容器 deque實現
vector是單向開口的連續線性空間,deque則是一種雙向開口的連續線性空間,可以在頭尾兩端分別做元素的插入和刪除操作。vector雖然從技術上也可以實現對頭尾兩端進行操作,但由於vector的底層實現特點的原因,其頭部操作效率奇差,故stl沒有為vector實現這一功能。deque和vector...