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