deque雙向佇列

2022-03-01 08:17:55 字數 1270 閱讀 3340

對於雙向佇列,與佇列queue以及vector容器的區別就在於,名字不同,也就是它是雙向的,可以從頭開始操作,也可以從末尾開始操作。

雙向佇列的常用方法跟佇列queue差不多:

標頭檔案: #include

函式:構造/析構

dequeq  構造乙個空的雙向佇列

dequeq(q1)  構造q,並複製q1

dequeq(n)  建立deque,含有n個資料,資料均由預設建構函式產生

dequeq(beg,end)  建立乙個以[beg,end)區間的deque

q.~deque()  銷毀所有的資料,釋放記憶體

賦值q.assign(beg,end)  將[beg,end)區間中的資料賦值給q

q.assign(n,int)  將n個int 的拷貝值給q

資料訪問

q.at(idx)  返回索引 idx 所指的資料,如果 idx 越界,丟擲 out_of_range

q.fron()  返回第乙個資料

q.back()  返回最後乙個資料

q.begin() 返回指向第乙個資料的迭代器

q.end()  返回指向最後乙個資料的下乙個位置的迭代器

q.rbegin() 返回逆向佇列的第乙個資料

q.rend() 返回指向逆向佇列的最後乙個資料的下乙個位置的迭代器

加入資料

q.push_back()  在尾部加入乙個資料

q.push_front()  在頭部插入乙個資料

q.insert(pos,int) 在pos 位置插入乙個 int 資料的拷貝 ,返回新資料位置

q.insert(pos,n,int) 在pos 位置插入n 個 int 資料 ,無返回值

q.insert(pos,beg,end) 在pos位置插入在 [beg,end)區間的資料,無返回值

刪除資料

q.pop_back() 刪除最後乙個資料

q.pop_front()  刪除頭部資料

q.erase(pos) 刪除pos位置的資料 ,返回下乙個資料的位置

q.erase(beg,end) 刪除[begin,end) 區間的資料,返回下乙個資料的位置

其他操作

q.empty()  判斷容器是否為空

q.max_size()   返回容器中最大資料的數量

q.resize(num)  重新制定佇列的長度

q.size()  返回容器中實際資料的個數

q.swap(q1)  將q和q1的元素互換

swap(q,q1)  同上

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容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...