Prioritní fronta je kontejner v STL. Je to podobné jako ve frontě, s výjimkou skutečnosti, že každý prvek prioritní fronty má určitou prioritu a když vyskakujeme prvky z prioritní fronty, jsou nejprve vyskakovány prvky s nejvyšší prioritou. Stejně jako prioritní fronta existuje 10 různých typů kontejnerů STL . Kontejner je objekt, který ukládá data. Kontejnery STL jsou implementovány pomocí tříd šablon, takže jeho přizpůsobení tak, aby obsahovalo různé typy dat, je snadné. V tomto příspěvku budeme podrobně diskutovat o prioritní frontě a konceptech s ní souvisejících. Následující ukazatele budou popsány v této prioritní frontě v článku C ++,
Pokračujeme tímto článkem o prioritní frontě v C ++
Součásti STL
STL se skládá z tříd šablon a funkcí, které lze použít jako standardní přístup k ukládání a zpracování dat. Pojďme diskutovat o komponentách STL
Kontejnery- V STL je definováno 10 typů kontejnerů, které jsou seskupeny do 3 kategorií. Z těchto 3 prioritních front patří do kategorie odvozeného kontejneru. Každá třída kontejneru má vlastní sadu funkcí, které lze použít k manipulaci s daty.
Algoritmus - Algoritmus je metoda používaná ke zpracování dat přítomných v objektu kontejneru. STL poskytuje mnoho různých typů algoritmů, které lze použít při inicializaci, vyhledávání, třídění, slučování, kopírování. Algoritmy jsou implementovány pomocí funkcí šablon.
Iterátor - Iterátor je objekt, který směřuje k prvku v kontejneru. Iterátoři mohou pomoci při procházení obsahu kontejneru. Iterátory jsou jako ukazatele, které lze zvyšovat a snižovat. Funguje jako spojení mezi algoritmem a kontejnerem. Iterátory se používají pro manipulaci s daty uloženými v kontejneru.
Pokračujeme tímto článkem o prioritní frontě v C ++
Hromady a prioritní fronta
Jak jsme viděli dříve, prioritní fronta patří do kategorie odvozených kontejnerů. Dalšími členy této kategorie jsou zásobník a fronta. Tyto odvozené kontejnery jsou také známé jako adaptéry kontejnerů.
Zásobník, fronta a prioritní fronta jsou známé jako odvozené kontejnery, protože jsou vyrobeny z různých kontejnerů sekvence. Tyto kontejnery nepodporují žádný typ iterátorů, které se nepoužívají pro manipulaci s daty.
řetězec k převodu data v java
Co přesně je prioritní fronta?
Jednoduše řečeno, jedná se o kontejner, který jsme použili k ukládání dat. Každému prvku uložených dat je přiřazena určitá priorita, která nám může pomoci při ukládání dat v logickém pořadí.
Syntax:priority_queue variable_name
Pro použití prioritní fronty je důležité do programu zahrnout hlavičkový soubor.
Například pokud přidáme 2, 10, 30, 5, 6 do naší prioritní fronty pomocí funkce push a potom pop prvky pomocí funkce pop, výstup bude 30, 10, 6, 5, 2.
Dobře, takže teď známe účel nebo použití prioritní fronty. Ale jak to víte, když 30> 10? Dělá to nějaké třídění? V tomto bodě přicházejí na scénu hromady. Další informace o hromadách najdete v tomto článku.
Hromady - Hromady jsou struktury podobné stromům. Na základě toho, jak jsou uzly podřízených prvků uspořádány v hromadě vzhledem k nadřazeným uzlům, jsou hromady rozděleny na 2 části
jeden. Min. Halda V Min haldě je hodnota nadřazeného uzlu menší nebo rovna hodnotě podřízených uzlů.
2. Max. Halda V Max haldě je hodnota nadřazeného uzlu větší nebo rovna hodnotě podřízených uzlů.
Poznámka- Prioritní fronta netřídí prvky pomocí nějakého třídicího algoritmu, místo toho ukládá data ve formě haldy.
Pokračujeme tímto článkem o prioritní frontě v C ++
Tisk všech prvků prioritní fronty
Po pochopení základů prioritní fronty implementujme programy k porozumění nejčastěji používaných metod s prioritní frontou
#include #include using 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) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
Výstup:
30 15 10 9 6 2
Ve výše uvedeném programu jsme použili funkce pop (), top () a push (), které se nejčastěji používají při řešení prioritní fronty. Podívejme se na některé z metod, které můžeme použít u prioritní fronty
velikost (): Tato funkce Vrátí velikost prioritní fronty
prázdný (): Tato funkce se používá ke kontrole, zda je prioritní fronta prázdná nebo ne. Vrací true prioritní fronty je prázdná.
tlačit( ): Vloží prvek do fronty priorit.
pop (): Tato funkce odebere horní prvek prioritní fronty, což je prvek s nejvyšší prioritou.
vysvětlit mvc architekturu v Javě s příkladem
swap (): Tato funkce zamění prvky prioritní fronty s jinou prioritní frontou. Funkce přebírá jako parametr prioritní frontu.
emplace (): Tato funkce slouží k přidání prvku na začátek fronty priorit.
Podívejme se ještě na jeden program.
#include #include using 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) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
Výstup:
2 6 7 9 10 15 30
S tímto se dostáváme na konec této prioritní fronty v článku C ++. Pokud se chcete dozvědět více, podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Výcvikový a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java jako Hibernate & Spring.
Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.