Hàng đợi
Bài học 11 trên 23 trong khóa học C++ - Thư viện mẫu chuẩn của Coddy.
Hàng đợi C++ là một cấu trúc dữ liệu cung cấp chức năng của hàng đợi, chính xác hơn là tuân theo nguyên tắc FIFO (vào trước, ra trước). Điều này có nghĩa là các phần tử được thêm vào hàng đợi trước sẽ rời khỏi hàng đợi hoặc bị xóa khỏi hàng đợi trước.

queue<dataType> queueName;Để tạo một hàng đợi trong C++, chúng ta cần thêm tệp tiêu đề queue vào đầu tệp C++ bằng cách sử dụng #include <queue>.
Bây giờ, chúng ta có thể khai báo một hàng đợi trong chương trình như sau:
queue<int> queueOfNums;Chúng ta cần tìm hiểu cách thêm phần tử mới vào hàng đợi. Ta làm việc này bằng phương thức push(). Phương thức push() chèn một phần tử mới vào cuối hàng đợi.
queueOfNums.push(1);
queueOfNums.push(2);
...Tiếp theo, chúng ta muốn hiển thị các phần tử của hàng đợi. Vì đây là hàng đợi, chúng ta có thể hiển thị phần tử đầu tiên được thêm vào hàng đợi. Để làm việc đó, ta dùng phương thức front(). Phương thức này trả về phần tử đầu tiên của hàng đợi.
cout << queueOfNums.front();Output:
1Khác với ngăn xếp, nơi chúng ta chỉ có thể in ra phần tử trên cùng, tức phần tử cuối cùng của ngăn xếp, với hàng đợi, chúng ta cũng có thể in ra giá trị cuối cùng của hàng đợi. Ta làm việc này bằng phương thức back(), phương thức này trả về phần tử cuối cùng của hàng đợi.
queueOfNums.push(3);
cout << queueOfNums.back();Output:
3Chúng ta cũng cần tìm hiểu cách xóa các phần tử khỏi hàng đợi. Rất tiếc, chúng ta chỉ có thể xóa phần tử ở đầu hàng đợi và được thêm vào trước tiên, vì đây vẫn là hàng đợi, nên chúng ta không thể xóa phần tử cuối cùng trước. Ta dùng ngăn xếp cho việc đó, theo nguyên tắc LIFO (vào sau, ra trước).
Vậy nên, chúng ta xóa phần tử ở đầu hàng đợi bằng phương thức pop().
queueOfNums.pop();
cout << queueOfNums.front() << endl;
queueOfNums.pop();
cout << queueOfNums.front();Output:
1
2Các phương thức của hàng đợi
| Phương thức | Chức năng |
size() | Trả về số phần tử trong hàng đợi |
empty() | Trả về true nếu hàng đợi trống, nếu không thì trả về false |
swap() | Hoán đổi nội dung của một hàng đợi với hàng đợi khác |
Thử thách
DễCho 10 số từ đầu vào. Dùng hàng đợi, lần lượt lấy từng số ra và chỉ in ra các số chẵn.
Input
1 2 3 4 5 6 7 8 9 10Output
2 4 6 8 10Tự làm thử
#include <queue>
#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