Az elsőbbségi sor egy tároló az STL-ben. Hasonlít a várólistára, kivéve azt a tényt, hogy a prioritási sor minden elemének van bizonyos prioritása, és amikor elemeket dobunk fel a prioritási sorból, akkor a legmagasabb prioritású elemek kerülnek előbb. A prioritási sorhoz hasonlóan 10 különböző típusú tároló van STL . A tároló olyan objektum, amely adatokat tárol. Az STL konténerek sablon osztályok segítségével valósulnak meg, így könnyű testreszabni a különböző típusú adatok tárolására. Ebben a bejegyzésben részletesen megvitatjuk a Prioritási várólistát és a hozzá kapcsolódó fogalmakat. A következő mutatókra a C ++ cikk elsőbbségi sorában kerül sor,
Folytatás ezzel a cikkel a C ++ prioritási soráról
Az STL komponensei
Az STL sablonosztályokból és függvényekből áll, amelyek standard megközelítésként használhatók az adatok tárolására és feldolgozására. Beszéljük meg az STL összetevőit
Konténerek- Az STL-ben 10 típusú tároló van definiálva, és ezek 3 kategóriába vannak csoportosítva. Ebből a 3-ból a prioritási sorok a származtatott tároló kategóriájába tartoznak. Minden tárolóosztály saját funkciókészlettel rendelkezik, amelyek felhasználhatók az adatok manipulálására.
Algoritmus - Az algoritmus a tárolóobjektumban lévő adatok feldolgozására szolgáló módszer. Az STL sokféle algoritmust kínál, amelyek felhasználhatók inicializáláshoz, kereséshez, rendezéshez, egyesítéshez, másoláshoz. Az algoritmusokat sablonfüggvények segítségével valósítják meg.
Iterátor- Az iterátor olyan objektum, amely a tároló egyik elemére mutat. Az iterátorok segíthetnek a tartály tartalmának áthelyezésében. Az iterátorok olyanok, mint a mutatók, amelyeket növelni és csökkenteni lehet. Linkként működik az algoritmus és a tároló között. Az iterátorokat a tárolóban tárolt adatok manipulálására használják.
Folytatás ezzel a cikkel a C ++ prioritási soráról
Halom és elsőbbségi sor
Ahogy korábban láttuk, a Priority Queue a származtatott tárolók kategóriájába tartozik. A kategória további tagjai a verem és a sor. Ezeket a származtatott tartályokat tartályadaptereknek is nevezik.
A verem, a sor és az elsőbbségi sor származtatott tárolóként ismert, mivel különböző szekvencia-tárolókból készülnek. Ezek a tárolók nem támogatnak olyan iterátorokat, amelyeket nem használnak adatkezelésre.
Mi is az a kiemelt sor?
Egyszerű szavakkal, ez egy tároló, amelyet az adatok tárolására használtunk. A tárolt adatok minden elemének van valamilyen prioritása, amely segítségünkre lehet az adatok logikai sorrendben történő tárolásában.
Szintaxis:priority_queue változó_neve
Fontos, hogy egy fejlécfájlt illesszen be a programba a prioritási sor használatához.
Például, ha a push függvény segítségével hozzáadunk 2, 10, 30, 5, 6 az elsőbbségi sorunkhoz, majd a pop funkcióval beugrik az elemekre, akkor a kimenet 30, 10, 6, 5, 2 lesz.
Oké, tehát most már tudjuk a prioritási sor célját vagy használatát. De honnan tudta, hogy 30> 10? Valamilyen válogatást végez? Ezen a ponton halmok jönnek a képbe. A halmok részletes ismertetéséhez olvassa el ezt a cikket.
Kupacok - A kupacok faszerű szerkezetek. Annak alapján, hogy a gyermekelem-csomópontok miként vannak elrendezve egy kupacban a szülőcsomópontokhoz viszonyítva, a halmokat 2 részre osztják
pass by value vs pass by referencia java
egy. Min Heap- Min Heap esetén a szülőcsomópont értéke kisebb vagy egyenlő a gyermekcsomópontok értékével.
2. Max Heap- Max Heap esetén a szülőcsomópont értéke nagyobb vagy egyenlő a gyermekcsomópontok értékével.
Jegyzet- A prioritási sor nem rendezi az elemeket valamilyen rendezési algoritmus segítségével, hanem halom formájában tárolta az adatokat.
Folytatás ezzel a cikkel a C ++ prioritási soráról
A prioritási sor összes elemének kinyomtatása
Miután megértettük a prioritási sor alapjait, hajtsunk végre programokat annak érdekében, hogy megértsük a leggyakrabban használt módszereket prioritásos várólistával
#include #include névtér használatával st 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) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
Kimenet:
30 15 10 9 6 2
hogyan csatolja a java-t
A fenti programban a pop (), a top () és a push () függvényeket használtuk, amelyeket a legtöbbször használnak, miközben prioritási sorral foglalkozunk. Vessünk egy pillantást néhány olyan módszerre, amelyet elsőbbségi sorban használhatunk
méret (): Ez a függvény adja vissza a Prioritási sor méretét
üres (): Ezzel a funkcióval ellenőrizhető, hogy az elsőbbségi sor üres-e vagy sem. Igaz értéket ad vissza, ha a prioritási sor üres.
nyom( ): Beilleszt egy elemet a Prioritási sorba.
pop (): Ez a függvény eltávolítja a prioritási sor legfelső elemét, amely a legmagasabb prioritású elem.
csere (): Ez a függvény felcseréli a prioritási sor elemeit egy másik prioritási sorral. A funkció paraméterként prioritási várólistát vesz fel.
munkahely (): Ez a függvény egy elem hozzáadására szolgál a prioritási sor tetejére.
Nézzünk még egy programot.
#include #include névtér használatával st 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) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
Kimenet:
2 6 7 9 10 15 30
Ezzel a C ++ cikkben a Priority Queue végére értünk. Ha többet szeretne megtudni, nézze meg a Edureka, egy megbízható online tanulási társaság. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát arra tervezték, hogy mind az alapvető, mind a fejlett Java koncepciókra kiképezzen különféle Java keretrendszereket, például a Hibernate & Spring.
Van egy kérdésünk? Kérjük, említse meg a blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.