1. 程式人生 > >STL之deque用法

STL之deque用法

ase ssi push clear opera 大小 wap num 入隊

deque:雙端隊列

底層是一個雙向鏈表。

常用的有隊列的尾部入隊、首部出隊。

摘自:http://www.cnblogs.com/liubilan/p/9461141.html

deque - 雙向隊列

1.構造

無參構造:

deque<T> a;  //<>內自定義數據類型;

帶參構造:

deque(beg,end); //構造函數將[beg, end)區間中的元素拷貝給本身。註意該區間是左閉右開的區間。
deque(n,elem); //構造函數將n個elem拷貝給本身。
deque(const deque &deq); //拷貝構造函數。

2.頭部&尾部的添加和刪除

deque.push_back(elem); //在容器尾部添加一個數據
deque.push_front(elem); //在容器頭部插入一個數據
deque.pop_back(); //刪除容器最後一個數據
deque.pop_front(); //刪除容器第一個數據

3.中間數據存取

deque.at(idx); //返回索引idx所指的數據,如果idx越界,拋出out_of_range。
deque[idx]; //返回索引idx所指的數據,如果idx越界,不拋出異常,直接出錯。
deque.front(); //返回第一個數據。
deque.back(); //返回最後一個數據

4.元素插入

deque.insert(pos,elem); //在pos位置插入一個elem元素的拷貝,返回新數據的位置。
deque.insert(pos,n,elem); //在pos位置插入n個elem數據,無返回值。
deque.insert(pos,beg,end); //在pos位置插入[beg,end)區間的數據,無返回值。

5.數據刪除

deque.clear(); //移除容器的所有數據
deque.erase(beg,end); //刪除[beg,end)區間的數據,返回下一個數據的位置。
deque.erase(pos); //刪除pos位置的數據,返回下一個數據的位置。

6.叠代指針

deque.begin(); //返回容器中第一個元素的叠代器。
deque.end(); //返回容器中最後一個元素之後的叠代器。
deque.rbegin(); //返回容器中倒數第一個元素的叠代器。
deque.rend(); //返回容器中倒數最後一個元素之後的叠代器。

7.賦值&拷貝

deque.assign(beg,end); //將[beg, end)區間中的數據拷貝賦值給本身。註意該區間是左閉右開的區間。
deque.assign(n,elem); //將n個elem拷貝賦值給本身。
deque& operator=(const deque &deq); //重載等號操作符 
deque.swap(deq); // 將vec與本身的元素互換

8.大小&判斷非空

deque.size(); //返回容器中元素的個數
deque.empty(); //判斷容器是否為空
deque.resize(num); //重新指定容器的長度為num,若容器變長,則以默認值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。
deque.resize(num, elem); //重新指定容器的長度為num,若容器變長,則以elem值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。

STL之deque用法