Cara Melaksanakan Baris Keutamaan di C ++



Artikel ini akan memberi anda pengetahuan terperinci dan komprehensif mengenai cara melaksanakan antrean keutamaan di C ++ dengan contoh.

Baris keutamaan adalah wadah di STL. Ini sama dengan antrian kecuali untuk fakta bahawa setiap elemen antrian prioriti mempunyai keutamaan tertentu dan ketika kita memasukkan elemen dari antrian keutamaan, elemen dengan prioritas tertinggi muncul pertama. Seperti barisan keutamaan, terdapat 10 jenis kontena di STL . Bekas adalah objek yang menyimpan data. Bekas STL dilaksanakan dengan bantuan kelas templat, oleh itu penyesuaian untuk menyimpan pelbagai jenis data adalah mudah. Dalam catatan ini, kita akan membincangkan giliran Prioriti dan konsep yang berkaitan dengannya secara terperinci. Petunjuk berikut akan dibahas dalam Baris Keutamaan ini dalam artikel C ++,

Teruskan dengan artikel ini mengenai Priority Queue di C ++





Komponen STL

STL terdiri daripada kelas dan fungsi templat yang dapat digunakan sebagai pendekatan standard untuk menyimpan dan memproses data. Mari kita bincangkan komponen STL

perbezaan antara kaedah overloading dan kaedah overriding

Bekas- Terdapat 10 jenis bekas yang ditakrifkan dalam STL dan ini dikumpulkan kepada 3 kategori. Dari 3 ini, barisan Prioriti tergolong dalam kategori wadah yang diturunkan. Setiap kelas kontena mempunyai set fungsi tersendiri yang dapat digunakan untuk memanipulasi data.



Algoritma - Algoritma adalah kaedah yang digunakan untuk memproses data yang ada di objek kontena. STL menyediakan pelbagai jenis Algoritma yang dapat digunakan dalam menginisialisasi, mencari, menyusun, menggabungkan, menyalin. Algoritma dilaksanakan dengan bantuan fungsi templat.

Pengulangan- Iterator adalah objek yang menunjuk ke arah elemen di dalam bekas. Iterator dapat membantu penggunaan dalam bergerak melalui isi bekas. Iterator adalah seperti penunjuk yang dapat ditingkatkan dan diturunkan. Ia bertindak sebagai penghubung antara algoritma dan wadah. Iterator digunakan untuk memanipulasi data yang disimpan di dalam bekas.

Teruskan dengan artikel ini mengenai Priority Queue di C ++



Tumpukan dan Baris Keutamaan

Seperti yang kita lihat sebelumnya, Priority Queue tergolong dalam kategori container yang berasal. Anggota lain dari kategori ini adalah tumpukan dan beratur. Bekas yang dihasilkan ini juga dikenali sebagai penyesuai kontena.

Antrean tumpukan, antrian dan prioriti dikenali sebagai bekas yang berasal kerana ia dibuat dari bekas urutan yang berbeza. Bekas ini tidak menyokong jenis iterator yang tidak digunakan untuk manipulasi data.

Apa sebenarnya barisan keutamaan?

Dengan kata mudah, ia adalah wadah yang biasa kami gunakan untuk menyimpan data. Setiap elemen data yang disimpan diberi beberapa keutamaan yang dapat membantu kita menyimpan data dalam urutan yang logik.
Sintaks:priority_queue variable_name

Penting untuk memasukkan fail tajuk dalam program agar dapat menggunakan barisan keutamaan.

barisan keutamaan dalam c ++Sebagai contoh, jika kita menambah 2, 10, 30, 5, 6 dalam barisan keutamaan kita menggunakan fungsi tekan dan kemudian masukkan elemen menggunakan fungsi pop maka outputnya akan menjadi 30, 10, 6, 5, 2.

Baiklah, jadi sekarang kita tahu tujuan atau penggunaan giliran keutamaan. Tetapi bagaimana ia tahu jika 30> 10? Adakah melakukan penyortiran? Pada ketika ini Heaps masuk ke dalam gambar. Untuk mengetahui timbunan secara terperinci, rujuk artikel ini.

Tumpukan- Tumpukan adalah struktur seperti pokok. Berdasarkan bagaimana nod elemen anak disusun dalam timbunan sehubungan dengan nod induk, timbunan dibahagikan kepada 2 bahagian

satu. Tumpukan Min- Di Min Heap, nilai nod induk kurang daripada atau sama dengan nilai nod anak.

2. Tumpukan Maksimum- Dalam Max Heap, nilai nod induk lebih besar daripada atau sama dengan nilai nod anak.

Catatan- Baris keutamaan tidak menyusun elemen menggunakan beberapa algoritma penyortiran sebaliknya menyimpan data dalam bentuk timbunan.

Teruskan dengan artikel ini mengenai Priority Queue di C ++

Mencetak semua elemen barisan keutamaan

Setelah memahami asas-asas antrian keutamaan, mari kita laksanakan program untuk memahami kaedah yang paling biasa digunakan dengan barisan keutamaan

#include #include menggunakan namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) manakala (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Pengeluaran:

30 15 10 9 6 2

Dalam program di atas, kami menggunakan fungsi pop (), top () dan push () yang sering digunakan ketika berhadapan dengan barisan keutamaan. Mari kita lihat beberapa kaedah yang boleh kita gunakan dengan barisan keutamaan

saiz (): Fungsi ini Mengembalikan ukuran Antrian Prioriti

kosong (): Fungsi ini digunakan untuk memeriksa apakah barisan keutamaan kosong atau tidak. Ia kembali benar kerana barisan keutamaan kosong.

tolak (): Memasukkan elemen dalam Baris Prioriti.

pop (): Fungsi ini membuang elemen teratas prioriti antrian yang merupakan elemen dengan keutamaan tertinggi.

tukar (): Fungsi ini menukar elemen antrian keutamaan dengan giliran keutamaan yang lain. Fungsi mengambil antrian keutamaan sebagai parameter.

tempat (): Fungsi ini digunakan untuk menambahkan elemen ke bahagian atas giliran keutamaan.

Mari lihat satu lagi program.

#include #include menggunakan namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) manakala (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Pengeluaran:

2 6 7 9 10 15 30

kaedah overloading dan overriding dalam contoh java

Dengan ini, kita akan mengakhiri artikel Antrian Prioriti ini dalam C ++. Sekiranya anda ingin mengetahui lebih lanjut, lihat di oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini dan kami akan menghubungi anda secepat mungkin.