Queue

Queue adalah salah satu template container STL yang menggambarkan keluar masuknya orang-orang di dalam antrian. Siapapun yang pertama masuk akan keluar pertama. Metode keluar masuknya barang atau orang di dalam antrian disebut juga dengan FIFO (First In First Out).

Untuk menggunakan queue pada C++ kalian perlu menambahkan "#include <queue>". Berikut ini adalah contoh kode programnya.

#include <iostream>
#include <queue>

using namespace std;

int main(){
queue<int> antrian;

    //Isi queue
    antrian.push(1);
    antrian.push(2);
    antrian.push(3);
    antrian.push(4);
    antrian.pop();//hapus data pertama

    cout << "Jumlah data : " << antrian.size();
    cout << endl;
    
    cout << "Data pertama : ";
    cout << antrian.front() << endl;

    cout << "Data terakhir : ";
    cout << antrian.back() << endl;

    return 0;
}
Output
Jumlah data : 3
Data pertama : 2
Data terakhir : 4

Contoh kode program di atas menggunakan queue dengan tipe data int sebagai isinya. Tipe data pada deklarasi queue diapit dengan tanda "<" dan ">".

Dalam kode program di atas, queue ditambah datanya dengan menggunakan method push. Data yang baru dimasukkan secara otomatis akan menjadi data pertama. Data pertama tersebut bisa dihapus dengan pop. Kalian juga bisa bisa melihatnya dengan method front. Sebaliknya, data terakhir bisa dilihat dengan method back. Walaupun begitu, data terakhir tidak bisa dihapus selama masih ada data lain karena adanya metode FIFO pada queue.

#include <iostream>
#include <queue>

using namespace std;

int main(){
    queue<float> antrian;
    antrian.push(3.5);
    antrian.push(4.5);
    antrian.push(5);
    antrian.push(5.5);

    cout << "antrian : ";

    while(!antrian.empty()){
        cout<<antrian.front() << " ";
        antrian.pop();
    }
    return 0;
}
Output
antrian : 3.5 4.5 5 5.5

Queue tidak bisa diinisialisasi isinya saat deklarasi variabel. Karena itu, kalian perlu menggunakan push untuk menambahkan data satu persatu. Setelah semua data ditambahkan, kalian bisa menggunakan while untuk menampilkan isi queue sambil mengosongkannya dengan pop. Untuk memastikan queue kosong, kalian bisa menggunakan method empty.

Beberapa method yang biasa digunakan dalam queue adalah sebagai berikut :

  1. push => Menambahkan data.
  2. pop => Menghapus data paling akhir.
  3. front => Menunjukkan nilai data pada elemen pertama dalam queue. 
  4. back => Menunjukkan nilai data pada elemen terakhir dalam queue. 
  5. size => Mengembalikan nilai berupa ukuran queue
  6. empty => mengecek apakah queue sudah kosong atau belum.
Kalian juga bisa menggunakan function swap untuk menukar isi queue dengan queue lain yang isinya punya tipe data sejenis.