priority queue stl
STL'de Öncelik Kuyruğuna Derinlemesine Bir Bakış.
Bu Açık C ++ serisinde, önceki öğreticide yığınlar ve kuyruklar gördük.
Bu eğiticide, STL'deki başka bir özel kapsayıcıyı, yani öncelik kuyruğunu tartışacağız.
cep telefonu için en iyi casus uygulaması
Öncelik kuyruğu, STL'deki bir kapsayıcıdır. Öncelik kuyruğu, birinci öğe her zaman kuyruktaki en büyük öğe olacak şekilde azalan sırayla düzenlenmiş öğelere sahip bir kaptır.
=> Tam C ++ Öğreticiler listesi için Burayı Ziyaret Edin.
Ne öğreneceksin:
Genel Bakış
Öğeyi FIFO sırasına göre itip çıkaran normal kuyruğun aksine, öncelik kuyruğu azalan sırada öğelere ve her öğe için bir önceliğe (sabit sıraya) sahiptir.
Öncelik kuyruğu, C ++ 'daki 'maksimum yığın' veri yapısı ile benzer şekilde görüntülenebilir.
android için ücretsiz mp3 müzik indirme uygulaması
Öncelik kuyruğunun genel sözdizimi şöyledir:
priority_queue queue_name;
Dolayısıyla, int türünde bir öncelik kuyruğu tanımlamak istersek, bunu şu şekilde tanımlayabiliriz:
priority_queue mypqueue;
Öncelik Kuyruğu - İşlemler
Aşağıda öncelik kuyruğunun desteklediği işlemleri görelim.
- İt: Öncelik kuyruğuna bir öğe ekler. Eleman eklerken, elemanların önceliği korunur.
- Pop: Öncelik kuyruğundan en üstteki öğeyi kaldırır.
- Üst: Öncelik kuyruğundaki en üstteki öğeyi, yani öncelik kuyruğundaki en büyük öğeyi döndürür.
- Boş: Öncelik kuyruğunun boş olup olmadığını kontrol eder.
- Boyut: Öncelik kuyruğunun boyutunu, yani öncelik kuyruğundaki öğe sayısını döndürür.
Bu fonksiyonların / işlemlerin kullanımını göstermek için bir program yazalım.
#include #include using namespace std; void displaypq(priority_queue pri_queue) { priority_queue pq = pri_queue; while (!pq.empty()) { cout << ' ' << pq.top(); pq.pop(); } cout << '
'; } int main () { priority_queue mypq; mypq.push(1); mypq.push(3); mypq.push(60); cout<<'
Priority queue after inserting value 60: '; displaypq(mypq); mypq.push(5); cout<<'
Priority queue after inserting value 5: '; displaypq(mypq); mypq.push(10); cout << '
The priority queue mypq is : '; displaypq(mypq); cout << '
mypq.size() : ' << mypq.size(); cout << '
mypq.top() : ' << mypq.top(); cout << '
mypq.pop() : '; mypq.pop(); displaypq(mypq); return 0; }
Çıktı:
60: 60 değerini girdikten sonra öncelik sırası 3 1
5 değerini girdikten sonra öncelik sırası: 60 5 3 1
Öncelik sırası mypq: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
Öncelik sırasını anlamak için lütfen çıktıyı dikkatlice kontrol edin. İlk olarak, çıktının ilk satırında gösterildiği gibi 1,3,60 değerlerini itiyoruz. Ardından öncelik kuyruğunda 5 değerini itiyoruz. Bundan sonra, öncelik sırası görüntülenir. 5 değerinin 60'tan sonra basılmasına rağmen, öncelik sırasının en üstünün hala 60 olduğunu unutmayın.
Yine başka bir 10 değerini itiyoruz ve yine de, öncelik sırasının tepesi 60'tır. Bunun nedeni, öğeleri ittirirken, öğelerin sırası veya önceliğinin, en büyük öğe her zaman en üstte olacak şekilde muhafaza edilmesidir.
güvenli dosya aktarım sistemi protokolü ve bağlantı noktası
Sonuç
Bu tamamen STL'de öncelikli kuyruk uygulamasıyla ilgiliydi. Bir sonraki eğitimimizde, harita ve set gibi STL kapsayıcıları hakkında daha fazla bilgi edineceğiz.
=> Absolute C ++ Eğitim Serisi İçin Tıklayınız.