c++ deque(雙向佇列)
是一種優化了的、對序列兩端元素進行新增和刪除操作的基本序列容器。它允許較為快速地隨機訪問,但它不像
vector
把所有的物件儲存在一塊連續的記憶體塊,而是採用多個連續的儲存塊,並且在乙個對映結構中儲存對這些塊及其順序的跟蹤。向
deque
兩端新增或刪除元素的開銷很小。它不需要重新分配空間,所
以向末端增加元素比
vector
更有效。
實際上,
deque
是對vector
和list
優缺點的結合,它是處於兩者之間的一種容器。
deque的特點:
(1)
隨機訪問方便,即支援
[ ]
操作符和
vector.at()
,但效能沒有
vector 好;
(2)
可以在內部進行插入和刪除操作,但效能不及
list ;
(3)
可以在兩端進行
push
、pop ;
(4)
相對於verctor
占用更多的記憶體。
雙向佇列和向量很相似,但是它允許在容器頭部快速插入和刪除(就像在尾部一樣)。
1.constructors
建立乙個新雙向佇列 語法
: deque();//
建立乙個空雙向佇列
deque( size_type size );//
建立乙個大小為
size
的雙向佇列
deque( size_type num, const type &val ); //
放置num
個val
的拷貝到佇列中
deque( const deque &from );//
從from
建立乙個內容一樣的雙向佇列
deque( input_iterator start, input_iterator end );
// start
和 end -
建立乙個佇列,儲存從
start
到end
的元素。
2.operators
比較和賦值雙向佇列 //
可以使用
操作符訪問雙向佇列中單個的元素
3.assign()
設定雙向佇列的值 語法
: void assign( input_iterator start, input_iterator end);
//start
和end
指示的範圍為雙向佇列賦值
void assign( size num, const type &val );//
設定成num
個val。
4.at()
返回指定的元素 語法:
reference at( size_type pos );
返回乙個引用,指向雙向佇列中位置
pos上的元素
5.back()
返回最後乙個元素 語法
: reference back();//
返回乙個引用,指向雙向佇列中最後乙個元素
6.begin()
返回指向第乙個元素的迭代器 語法
: iterator begin();//
返回乙個迭代器,指向雙向佇列的第乙個元素
7.clear()
刪除所有元素
8.empty()
返回真如果雙向隊列為空
9.end()
返回指向尾部的迭代器
10.erase()
刪除乙個元素 語法
: iterator erase( iterator pos ); //
刪除pos
位置上的元素
iterator erase( iterator start, iterator end ); //
刪除start
和end
之間的所有元素 //
返回指向被刪除元素的後乙個元素
11.front()
返回第乙個元素的引用
12.get_allocator()
返回雙向佇列的配置器
13.insert()
插入乙個元素到雙向佇列中 語法
: iterator insert( iterator pos, size_type num, const type &val ); //pos
前插入num
個val值
void insert( iterator pos, input_iterator start, input_iterator end ); //
插入從start
到end
範圍內的元素到
pos前面
14.max_size()
返回雙向佇列能容納的最大元素個數
15.pop_back()
刪除尾部的元素
16.pop_front()
刪除頭部的元素
17.push_back()
在尾部加入乙個元素
18.push_front()
在頭部加入乙個元素
19.rbegin()
返回指向尾部的逆向迭代器
20.rend()
返回指向頭部的逆向迭代器
21.resize()
改變雙向佇列的大小
22.size()
返回雙向佇列中元素的個數
23.swap()
和另乙個雙向佇列交換元素
語法:void swap( deque &target );//
交換target
和現雙向佇列中元素
c deque 雙端佇列
雙端佇列 函式 描述c.assign beg,end c.assign n,elem 將 beg end 區間中的資料賦值給c。將n個elem的拷貝賦值給c。c.at idx 傳回索引idx所指的資料,如果idx越界,丟擲out of range。c.back 傳回最後乙個資料,不檢查這個資料是否存...
C deque 佇列) 的使用
序列 動態陣列 allocator aware 序列容器的元素按嚴格線性排列,可按順序訪問它們的位置 動態陣列允許直接訪問其任何元素,可快速在序列首尾相對快速進行元素新增 刪除 容器通過 allocator 物件動態處理儲存需求 public member function begin 將迭代器返回...
deque雙向佇列
deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似,下面列出deque的常用成員函式 deque的實現比較複雜,內部會維護乙個map 注意!不是stl中的map容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...