Rate this post

Trong C++, queue là một cấu trúc dữ liệu của STL (Standard Template Library) cho cấu trúc dữ liệu hàng đợi. Hàng đợi (queue) là một cấu trúc dữ liệu mà phần tử được thêm vào cuối hàng đợi và xóa từ đầu hàng đợi (FIFO – First In First Out).

Cú pháp của queue là:

queue<data_type> queue_name;

Ví dụ:

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue<int> myQueue;
    myQueue.push(5);
    myQueue.push(7);
    myQueue.push(9);
    while (!myQueue.empty()) {
        cout << myQueue.front() << " ";
        myQueue.pop();
    }
}

Trong ví dụ trên, chúng ta khởi tạo một queue kiểu int, sau đó sử dụng hàm push để chèn các phần tử 5, 7 và 9 vào hàng đợi. Sau đó, chúng ta sử dụng vòng lặp while để in ra tất cả các phần tử trong hàng đợi và xóa chúng ra khỏi hàng đợi.

Các hàm cơ bản của queue trong C++:

  • push(element): Chèn phần tử vào cuối hàng đợi.
  • pop(): Xóa phần tử đầu tiên trong hàng đợi.
  • front(): Trả về phần tử đầu tiên trong hàng đợi.
  • back(): Trả về phần tử cuối cùng trong hàng đợi.
  • empty(): Kiểm tra xem hàng đợi có rỗng hay không. Trả về true nếu hàng đợi rỗng, ngược lại trả về false.
  • size(): Trả về số lượng phần tử trong hàng đợi.

Lưu ý rằng, queue chỉ có thể truy cập vào phần tử đầu tiên của hàng đợi thông qua hàm front(), không thể truy cập vào phần tử bất kỳ trong hàng đợi như vector hoặc mảng.

Queue là một cấu trúc dữ liệu thường được sử dụng trong các trường hợp mà bạn cần lưu trữ một tập hợp các phần tử và xử lý chúng theo thứ tự FIFO. Nó có thể được sử dụng trong các trường hợp như:

  • Xử lý các sự kiện theo thứ tự xảy ra
  • Xử lý các request từ người dùng trong một hệ thống web
  • Xử lý các task trong một hệ thống làm việc theo thứ tự
  • Xử lý các bản tin trong một hệ thống truyền thông
  • v.v.

Queue cung cấp nhiều hàm cơ bản để quản lý hàng đợi và xử lý các phần tử trong hàng đợi, điều này giúp cho việc sử dụng queue trong C++ dễ dàng và tiện lợi.

Một số ví dụ queue trong c++

Ví dụ 1: Sử dụng queue để lưu trữ và xử lý các số nguyên

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue<int> myQueue;
    myQueue.push(5);
    myQueue.push(7);
    myQueue.push(9);
    while (!myQueue.empty()) {
        cout << myQueue.front() << " ";
        myQueue.pop();
    }
    return 0;
}

Ví dụ 2: Sử dụng queue để lưu trữ và xử lý các chuỗi

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue<string> myQueue;
    myQueue.push("Hello");
    myQueue.push("World");
    myQueue.push("!");
    while (!myQueue.empty()) {
        cout << myQueue.front() << " ";
        myQueue.pop();
    }
    return 0;
}

Ví dụ 3: Sử dụng queue để lưu trữ và xử lý các đối tượng của class

#include <iostream>
#include <queue>
using namespace std;
class Person {
    string name;
    int age;
  public:
    Person(string n, int a) : name(n), age(a) {}
    void display() {
        cout << "Name: " << name << ", Age: " << age << endl;
    }
};
int main()
{
    queue<Person> myQueue;
    Person p1("John", 25);
    Person p2("Mary", 30);
    myQueue.push(p1);
    myQueue.push(p2);
    while (!myQueue.empty()) {
        myQueue.front().display();
        myQueue.pop();
    }
    return 0;
}

Trong các ví dụ trên, chúng ta sử dụng queue để lưu trữ

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now