En prioritert kø er en container i STL. Det ligner på kø, bortsett fra det faktum at hvert element i prioritetskøen har viss prioritet, og når vi spretter elementer fra prioritetskøen, poppes elementene med høyest prioritet først. I likhet med prioritetskøen er det 10 forskjellige typer containere i STL . En container er et objekt som lagrer data. STL-containere er implementert ved hjelp av malklasser, og det er enkelt å tilpasse den til å holde forskjellige typer data. I dette innlegget vil vi diskutere Priority-køen og konseptene knyttet til den i detalj. Følgende tips vil bli dekket i denne Priority Queue in C ++ - artikkelen,
Fortsetter med denne artikkelen om Priority Queue i C ++
Komponenter av STL
STL består av malklasser og funksjoner som kan brukes som en standard tilnærming for lagring og behandling av data. La oss diskutere komponentene i STL
Beholdere- Det er 10 typer containere definert i STL, og disse er gruppert i 3 kategorier. Av disse 3 tilhører prioritetskøer kategorien til den avledede containeren. Hver containerklasse har sitt eget sett med funksjoner som kan brukes til å manipulere dataene.
Algoritme - En algoritme er en metode som brukes til å behandle dataene som er tilstede i containerobjektet. STL gir mange forskjellige typer algoritmer som kan brukes til initialisering, søk, sortering, sammenslåing, kopiering. Algoritmer implementeres ved hjelp av malfunksjoner.
Iterator- En iterator er et objekt som peker mot et element i beholderen. Iteratorer kan hjelpe til med å flytte gjennom innholdet i en container. Iteratorer er som pekere som kan økes og reduseres. Det fungerer som en kobling mellom algoritmen og beholderen. Iteratorer brukes til å manipulere dataene som er lagret i en container.
java hvordan avslutte programmet
Fortsetter med denne artikkelen om Priority Queue i C ++
Massevis og prioritetskø
Som vi så tidligere, tilhører Priority Queue kategorien avledede containere. Andre medlemmer i denne kategorien er stack og kø. Disse avledede containere er også kjent som containeradaptere.
Stack, kø og prioritetskø er kjent som avledede containere, ettersom de er laget av forskjellige sekvensbeholdere. Disse beholderne støtter ikke noen type iteratorer, de brukes ikke til datamanipulering.
Hva er egentlig en prioritert kø?
Med enkle ord er det en container som vi brukte til å lagre data. Hvert element i de lagrede dataene tildeles en viss prioritet som kan hjelpe oss med å lagre data i en logisk rekkefølge.
Syntaks:prioritets_variabel_navn
Det er viktig å inkludere en headerfil i programmet for å kunne bruke en prioritetskø.
For eksempel, hvis vi legger til 2, 10, 30, 5, 6 i vår prioritetskø ved hjelp av trykkfunksjon og deretter spretter elementene ved hjelp av popfunksjon, vil utgangen være 30, 10, 6, 5, 2.
Ok, så nå vet vi formålet eller bruken av prioritetskø. Men hvordan visste det om 30> 10? Gjør det en slags sortering? På dette tidspunktet kommer dynger inn i bildet. For å lære om hauger i detalj, se denne artikkelen.
Hauger - Hauger er trelignende strukturer. Basert på hvordan underordnede noder er ordnet i en haug i forhold til foreldrenodene, er hauger delt inn i 2 deler
en. Min haug- I Min Heap er verdien til foreldrenoden mindre enn eller lik verdien av underordnede noder.
2. Max Heap- I Max Heap er verdien til foreldrenoden større enn eller lik verdien av underordnede noder.
Merk- Prioritetskøen sorterer ikke elementene ved hjelp av noen sorteringsalgoritmer, i stedet lagret den dataene i form av en bunke.
Fortsetter med denne artikkelen om Priority Queue i C ++
Skriver ut alle elementene i en prioritetskø
Etter å ha forstått det grunnleggende i prioritetskøen, la oss implementere programmer for å forstå de mest brukte metodene med en prioritetskø
#include #include ved å bruke navneområdet std int main () {prioritet_kjøp 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) mens (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
Produksjon:
hva er en skanner i java
30 15 10 9 6 2
I det ovennevnte programmet brukte vi pop (), top () og push () funksjonene som brukes mest av gangene mens vi har med en prioritetskø. La oss ta en titt på noen av metodene vi kan bruke med en prioritetskø
størrelse (): Denne funksjonen Returnerer størrelsen på Priority Queue
tom (): Denne funksjonen brukes til å sjekke om prioritetskøen er tom eller ikke. Det returnerer sant når prioritetskøen er tom.
trykk (): Setter inn et element i Priority Queue.
pop (): Denne funksjonen fjerner toppelementet i prioritetskøen som er elementet med høyest prioritet.
bytte( ): Denne funksjonen bytter elementene i prioritetskøen med en annen prioritetskø. Funksjonen tar en prioritetskø som parameter.
emplace (): Denne funksjonen brukes til å legge til et element øverst i prioritetskøen.
La oss se på ett program til.
#include #include ved å bruke navneområdet std int main () {prioritet_kjøp 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) mens (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
Produksjon:
2 6 7 9 10 15 30
Med dette kommer vi til en slutt på denne Priority Queue in C ++ - artikkelen. Hvis du ønsker å lære mer, sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplærings- og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.
Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.