Contents
Deque là một chữ viết tắt cho doubly ended queue. Deque cho phép chèn và xóa nhanh ở cả hai đầu của hàng đợi. Mặc dù chúng ta cũng có thể sử dụng container vector để chèn và xóa ở cả hai đầu của nó, nhưng chèn và xóa ở mặt trước của mảng là tốn kém hơn ở phía sau.
Cú pháp
deque <object_type> deque_name;
object_type: kiểu dữ liệu (int, float, struct, class,…)
deque_name: tên biến deque
Function
Function | Ý nghĩa |
push_back(element e) |
|
push_front(element e) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ví dụ: Minh họa các function của deque
#include <iostream> #include <deque> #include <vector> using namespace std; void printdeque(deque<int> dq); int main () { int a[] = { 1,5,8,9,3 }; /* creates s deque with elements 1,5,8,9,3 */ deque<int> dq(a, a+5); cout << "deque: "; printdeque(dq); cout << "size() : " << dq.size() << endl; cout << "max_size() : " << dq.max_size() << endl; /* push_back() */ dq.push_back(10); cout << "\npush_back(10): "; printdeque(dq); cout << "size: " << dq.size() << endl; cout << "max_size() : " << dq.max_size() << endl; /* push_front() */ dq.push_front(20); cout << "\npush_front(20): "; printdeque(dq); cout << "size: " << dq.size() << endl; cout << "max_size() : " << dq.max_size() << endl; deque<int>::iterator i; i=dq.begin()+2; /* i points to 3rd element in dq */ /* insert(iterator, element) */ dq.insert(i, 15); cout << "\ninsert(3rd position,15): "; printdeque(dq); cout << "size: " << dq.size() << endl; cout << "max_size() : " << dq.max_size() << endl; /* insert(iterator i, int count, element e) */ dq.insert(dq.end(), 5, 9); cout << "\ninsert(dq.begin(), 5, 9): "; printdeque(dq); cout << "size: " << dq.size() << endl; cout << "max_size() : " << dq.max_size() << endl; int b[]={7,7,7,7}; /* insert(iterator i, iterator first, iterator last) */ dq.insert(dq.begin() , b , b+4 ); cout << "\ninsert(dq.begin() , b , b+4): "; printdeque(dq); cout << "size: " << dq.size() << endl; cout << "max_size() : " << dq.max_size() << endl; system("pause"); } void printdeque(deque<int> dq) { deque<int>::iterator i; for (i = dq.begin(); i != dq.end(); i++) { cout << *i << " "; } cout << endl; }
Kết quả:
Leave a Reply
You must be logged in to post a comment.