Deque
Bài học 6 trên 23 trong khóa học C++ - Thư viện mẫu chuẩn của Coddy.
Deque là một bộ chứa tuần tự trong C++, còn được gọi là hàng đợi hai đầu. Bạn sẽ tìm hiểu về hàng đợi thông thường ở phần sau của khóa học, trong chương về bộ điều chỉnh bộ chứa. Còn bây giờ, bạn cần biết rằng trong hàng đợi thông thường, các phần tử được thêm vào từ cuối và được lấy ra từ đầu. Còn với deque, chúng ta có thể thêm và lấy phần tử ở cả đầu lẫn cuối.

Chúng ta triển khai cấu trúc dữ liệu deque bằng cách thêm thư viện ở đầu tệp .cpp với #import <deque> (chúng ta cũng có thể sử dụng deque bằng cách thêm tệp tiêu đề bits/stdc++.h).
Tiếp theo, chúng ta tạo một deque theo cú pháp sau:
deque<data_type> deque_name;Đầu tiên, chúng ta dùng từ khóa deque. Tiếp theo, chúng ta đặt kiểu biến muốn lưu trữ trong deque, rồi chỉ định tên biến deque.
deque<int> numbers;Chúng ta cũng có thể khởi tạo deque khi khai báo, với cú pháp giống như khi dùng cấu trúc dữ liệu vector:
deque<int> numbers = {1, 2, 3, 4, 5};
cout << numbers[0];Output:
1Vậy, chúng ta thêm phần tử vào cuối deque bằng phương thức push_back() và thêm phần tử vào đầu bằng phương thức push_front().
deque<int> numbers = {2, 3};
numbers.push_front(1);
numbers.push_back(4);
for(int i = 0; i < numbers.size(); i++)
cout << numbers[i] << " ";Output:
1 2 3 4Các phương thức của deque
| Phương thức | Chức năng |
| push_back() | Thêm một phần tử mới vào cuối |
| push_front() | Thêm một phần tử mới vào đầu |
| pop_back() | Xóa phần tử ở cuối |
| pop_front() | Xóa phần tử ở đầu |
| size() | Trả về số lượng phần tử |
| empty() | Cho biết deque có rỗng hay không |
| clear() | Xóa tất cả phần tử trong deque |
Thử thách
DễNgười dùng sẽ nhập các số dương cho đến khi nhập -1. Lần lượt chèn từng số vào deque, bắt đầu bằng cách chèn số đầu tiên vào đầu, số thứ hai vào cuối, số thứ ba vào đầu, v.v. Sau đó, dùng một vòng lặp để duyệt qua deque và in ra từng phần tử, cách nhau một dấu cách.
Input
5
10
15
20
25
30
-1Output
25 15 5 10 20 30Tự làm thử
#include <deque>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}Tất cả bài học trong C++ - Thư viện mẫu chuẩn
Tự luyện tập: Trình biên dịch C++ online