Deque(雙向佇列)

2021-09-10 17:11:14 字數 2279 閱讀 1439

deque(雙向佇列)是一種優化了的、對序列兩端元素進行新增和刪除操作的基本序列容器。它允許較為快速地隨機訪問,但它不像vector把所有的物件儲存在一塊連續的記憶體塊,而是採用多個連續的儲存塊,並且在乙個對映結構中儲存對這些塊及其順序的跟蹤。向deque兩端新增或刪除元素的開銷很小。它不需要重新分配空間,所以向末端增加元素比vector更有效。

實際上,deque是對vector和list優缺點的結合,它是處於兩者之間的一種容器。

隨機訪問方便,即支援[ ]操作符和vector.at(),但效能沒有vector好;

可以在內部進行插入和刪除操作,但效能不及list;

可以在兩端進行push、pop;

相對於vector占用更多的記憶體。

雙向佇列和向量很相似,但是它允許在容器頭部快速插入和刪除(就像在尾部一樣)。

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、operatprs 比較和賦值雙向佇列

//可以使用 [ ] 操作符訪問雙向佇列中單個的元素
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和現雙向佇列中元素

deque雙向佇列

deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似,下面列出deque的常用成員函式 deque的實現比較複雜,內部會維護乙個map 注意!不是stl中的map容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...

deque雙向佇列

deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似,下面列出deque的常用成員函式 deque的實現比較複雜,內部會維護乙個map 注意!不是stl中的map容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...

deque雙向佇列

deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似,下面列出deque的常用成員函式 deque的實現比較複雜,內部會維護乙個map 注意!不是stl中的map容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...