STL之deque用法
阿新 • • 發佈:2018-08-29
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用法