Kaip įgyvendinti prioritetinę eilę C ++



Šis straipsnis suteiks jums išsamių ir išsamių žinių apie tai, kaip įgyvendinti prioritetų eilę C ++ su pavyzdžiais.

Prioritetinė eilė yra konteineris STL. Tai panašu į eilę, išskyrus tai, kad kiekvienas prioritetinės eilės elementas turi tam tikrą prioritetą ir kai mes iššokame elementus iš prioritetinės eilės, pirmiausia pasirodo aukščiausią prioritetą turintys elementai. Kaip ir prioritetinėje eilėje, čia yra 10 skirtingų tipų konteinerių STL . Konteineris yra objektas, kuriame saugomi duomenys. STL talpyklos yra įgyvendinamos naudojant šablonų klases, todėl lengva pritaikyti ją įvairių tipų duomenims laikyti. Šiame įraše išsamiai aptarsime prioritetinę eilę ir su ja susijusias sąvokas. Šie patarimai bus aptarti šioje C ++ straipsnio prioriteto eilėje,

Tęsiame šį straipsnį apie prioritetinę eilę C ++





STL komponentai

STL sudaro šablonų klasės ir funkcijos, kurios gali būti naudojamos kaip standartinis būdas saugoti ir apdoroti duomenis. Aptarkime STL komponentus

Konteineriai STL apibrėžta 10 konteinerių tipų, kurie yra sugrupuoti į 3 kategorijas. Iš šių 3 prioritetinės eilės priklauso išvestinio sudėtinio rodinio kategorijai. Kiekviena konteinerių klasė turi savo funkcijų rinkinį, kurį galima naudoti manipuliuojant duomenimis.



Algoritmas - Algoritmas yra metodas, naudojamas apdoroti konteinerio objekte esančius duomenis. STL pateikia daug įvairių algoritmų tipų, kurie gali būti naudojami inicijuojant, ieškant, rūšiuojant, sujungiant, kopijuojant. Algoritmai įgyvendinami šablonų funkcijų pagalba.

Iteratorius- Iteratorius yra objektas, nukreiptas į elementą talpykloje. Iteratoriai gali padėti naudoti perkeliant konteinerio turinį. Iteratoriai yra tarsi rodyklės, kurias galima didinti ir mažinti. Tai veikia kaip nuoroda tarp algoritmo ir talpyklos. Iteratoriai naudojami manipuliuojant konteineryje saugomais duomenimis.

Tęsiame šį straipsnį apie prioritetinę eilę C ++



Krūvos ir prioritetinė eilė

Kaip matėme anksčiau, „Priority Queue“ priklauso išvestinių talpyklų kategorijai. Kiti šios kategorijos nariai yra krūva ir eilė. Šie išvestiniai konteineriai taip pat žinomi kaip konteinerių adapteriai.

Krovinys, eilė ir prioritetinė eilė yra žinomi kaip išvestiniai konteineriai, nes jie yra pagaminti iš skirtingų sekų konteinerių. Šie sudėtiniai rodiniai nepalaiko jokių iteratorių, kurie nėra naudojami manipuliuojant duomenimis.

Kas iš tikrųjų yra prioritetinė eilė?

Paprastais žodžiais tariant, tai yra talpykla, kurią naudojome duomenims saugoti. Kiekvienam saugomų duomenų elementui priskiriamas tam tikras prioritetas, kuris gali padėti saugoti duomenis logine tvarka.
Sintaksė:priority_queue kintamojo_vardas

Norint naudoti prioritetinę eilę, svarbu į programą įtraukti antraštės failą.

prioritetinė eilė c ++Pvz., Jei mes pridėsime 2, 10, 30, 5, 6 į savo prioritetinę eilę naudodami „push“ funkciją, o tada iškelsime elementus naudodami „pop“ funkciją, išvestis bus 30, 10, 6, 5, 2.

c ++ goto etiketė

Gerai, todėl dabar mes žinome prioritetinės eilės tikslą arba naudojimą. Bet iš kur tai sužinojo, ar 30> 10? Ar tai rūšiuoja rūšį? Šiuo metu į paveikslą patenka krūvos. Norėdami išsamiai sužinoti apie krūvas, skaitykite šiame straipsnyje.

Krūvos - krūvos yra panašios į medį struktūros. Atsižvelgiant į tai, kaip vaiko elementų mazgai yra išdėstyti kaupe, palyginti su tėvų mazgais, krūvos yra suskirstytos į 2 dalis

vienas. Min Heap- Programoje „Min Heap“ pirminio mazgo vertė yra mažesnė arba lygi vaiko mazgų vertei.

2. Maxas Heapas „Max Heap“ pagrindinio mazgo vertė yra didesnė arba lygi vaiko mazgų vertei.

Pastaba- Pagal prioritetinę eilę elementai nerūšiuojami naudojant tam tikrą rūšiavimo algoritmą, o duomenys buvo kaupiami kaupo pavidalu.

skirtumai tarp html ir xml

Tęsiame šį straipsnį apie prioritetinę eilę C ++

Spausdinti visus prioritetinės eilės elementus

Supratę prioritetinės eilės pagrindus, įgyvendinkime programas, kad suprastume dažniausiai naudojamus metodus su prioritetine eile

#include #include naudojant vardų sritį st int main () {prioriteeto_prioritetas_pri_q_pri_q.push (10) prior_q.pushas (30) prior_q.pushas (6) Prior_q.pushas (2) Prior_q.pushas (15) Prior_q.pushas (9) Prior_q.push (7) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Išvestis:

30 15 10 9 6 2

Pirmiau pateiktoje programoje mes naudojome „pop“ („top“), „top“ („top“) ir „push“ () funkcijas, kurios dažniausiai naudojamos tvarkant prioritetinę eilę. Pažvelkime į keletą metodų, kuriuos galime naudoti prioritetinėje eilėje

dydis (): Ši funkcija grąžina prioritetinės eilės dydį

tuščia( ): Ši funkcija naudojama norint patikrinti, ar prioritetinė eilė tuščia. Tai grąžina tiesą, kai prioritetinė eilė tuščia.

stumti (): Įterpia elementą į prioritetinę eilę.

pop (): Ši funkcija pašalina viršutinį prioritetinės eilės elementą, kuris yra didžiausio prioriteto elementas.

sukeisti (): Ši funkcija pakeičia prioritetinės eilės elementus kita prioritetine eilute. Funkcija imasi prioritetinės eilės kaip parametro.

vieta (): Ši funkcija naudojama elementui pridėti prie prioritetinės eilės viršaus.

Pažvelkime į dar vieną programą.

#include #include naudojant vardų sritį st int main () {prioriteeto_prioritetas_pri_q_pri_q.push (10) prior_q.pushas (30) prior_q.pushas (6) Prior_q.pushas (2) Prior_q.pushas (15) Prior_q.pushas (9) Prior_q.push (7) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Išvestis:

2 6 7 9 10 15 30

Tai pasiekėme šios prioritetinės eilės C ++ straipsnyje pabaigą. Jei norite sužinoti daugiau, patikrinkite autorius - patikima internetinė mokymosi įmonė „Edureka“. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai skirti mokyti jus tiek pagrindinėms, tiek pažangesnėms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skiltyje, ir mes kuo greičiau susisieksime su jumis.