Kā ieviest prioritātes rindu C ++



Šis raksts sniegs jums detalizētas un visaptverošas zināšanas par prioritāšu rindas ieviešanu C ++ ar piemēriem.

Prioritārā rinda ir konteiners STL. Tas ir līdzīgs rindai, izņemot to, ka katram prioritātes rindas elementam ir noteikta prioritāte, un, kad mēs izvelkam elementus no prioritātes rindas, vispirms tiek parādīti elementi ar visaugstāko prioritāti. Tāpat kā prioritārā rinda, tajā ir arī 10 dažādu veidu konteineri STL . Konteiners ir objekts, kurā tiek glabāti dati. STL konteineri tiek ieviesti, izmantojot veidņu klases, tāpēc to ir viegli pielāgot dažādu veidu datu glabāšanai. Šajā amatā mēs detalizēti apspriedīsim prioritātes rindu un ar to saistītos jēdzienus. Turpmākie rādītāji tiks apskatīti šajā C ++ raksta prioritārajā rindā,

Turpinot šo rakstu par prioritātes rindu C ++





STL komponenti

STL sastāv no veidņu klasēm un funkcijām, kuras var izmantot kā standarta pieeju datu glabāšanai un apstrādei. Apspriedīsim STL komponentus

Konteineri STL ir definēti 10 konteineru veidi, un tie ir sagrupēti 3 kategorijās. No šīm 3 prioritārās rindas pieder atvasinātā konteinera kategorijai. Katrai konteineru klasei ir savs funkciju kopums, ko var izmantot, lai manipulētu ar datiem.



Algoritms - Algoritms ir metode, ko izmanto konteinera objektā esošo datu apstrādei. STL nodrošina daudz dažādu veidu algoritmus, kurus var izmantot inicializēšanā, meklēšanā, šķirošanā, apvienošanā, kopēšanā. Algoritmi tiek realizēti ar veidņu funkciju palīdzību.

Iterators- Iterators ir objekts, kas norāda uz konteinera elementu. Iteratori var palīdzēt izmantot, pārvietojoties pa konteinera saturu. Iteratori ir kā norādes, kuras var palielināt un samazināt. Tas darbojas kā saikne starp algoritmu un konteineru. Iteratorus izmanto, lai manipulētu ar konteinerā saglabātajiem datiem.

Turpinot šo rakstu par prioritātes rindu C ++



Kaudzes un prioritārā rinda

Kā jau iepriekš redzējām, prioritārā rinda pieder atvasināto konteineru kategorijai. Citi šīs kategorijas dalībnieki ir kaudze un rinda. Šie atvasinātie konteineri ir pazīstami arī kā konteineru adapteri.

Krāvums, rinda un prioritārā rinda ir pazīstama kā atvasinātie konteineri, jo tie ir izgatavoti no dažādiem secības konteineriem. Šie konteineri neatbalsta nevienu iteratoru veidu, tos neizmanto datu manipulācijām.

Kas īsti ir prioritārā rinda?

Vienkārši sakot, tas ir konteiners, kuru mēs izmantojām datu glabāšanai. Katram saglabāto datu elementam tiek piešķirta prioritāte, kas var mums palīdzēt datus uzglabāt loģiskā secībā.
Sintakse:priority_queue mainīgā_nosaukums

Lai izmantotu prioritāro rindu, programmā ir svarīgi iekļaut galvenes failu.

prioritārā rinda c ++Piemēram, ja mēs pievienojam 2, 10, 30, 5, 6 mūsu prioritārajā rindā, izmantojot push funkciju, un pēc tam pop elementus, izmantojot pop funkciju, izeja būs 30, 10, 6, 5, 2.

Labi, tāpēc tagad mēs zinām prioritātes rindas mērķi vai izmantošanu. Bet kā tas zināja, vai 30> 10? Vai tā notiek kāda veida šķirošana? Šajā brīdī kaudzes nonāk attēlā. Lai detalizēti uzzinātu par kaudzēm, skatiet šo rakstu.

Kaudzes - kaudzes ir kokam līdzīgas struktūras. Pamatojoties uz to, kā bērnu elementu mezgli ir sakārtoti kaudzē attiecībā pret vecāku mezgliem, kaudzes tiek sadalītas 2 daļās

viens. Min Heap- Programmā Min Heap vecākā mezgla vērtība ir mazāka vai vienāda ar bērnu mezglu vērtību.

2. Max Heap- Maksā Heapā vecāka mezgla vērtība ir lielāka vai vienāda ar bērnu mezglu vērtību.

Piezīme- Prioritārajā rindā elementi netiek kārtoti, izmantojot kādu šķirošanas algoritmu, tā vietā dati tika glabāti kaudzes formā.

Turpinot šo rakstu par prioritātes rindu C ++

Visu prioritārās rindas elementu drukāšana

Pēc prioritārās rindas pamatu izpratnes īstenosim programmas, lai izprastu visbiežāk izmantotās metodes ar prioritāru rindu

#include #include izmantojot vārdu vietas std int main () {prioritātes_kopa 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 }

Izeja:

30 15 10 9 6 2

kas ir pupas java

Iepriekš minētajā programmā mēs izmantojām funkcijas pop (), top () un push (), kuras visbiežāk tiek izmantotas, strādājot ar prioritāru rindu. Apskatīsim dažas no metodēm, kuras mēs varam izmantot ar prioritāru rindu

Izmērs( ): Šī funkcija atgriež prioritātes rindas lielumu

tukšs (): Šo funkciju izmanto, lai pārbaudītu, vai prioritārā rinda ir tukša vai nav. Tas atgriež patiesību, jo prioritārā rinda ir tukša.

push (): Ievieto elementu prioritārajā rindā.

pop (): Šī funkcija noņem prioritātes rindas augšējo elementu, kas ir elements ar visaugstāko prioritāti.

apmainīt (): Šī funkcija apmaina prioritārās rindas elementus ar citu prioritāro rindu. Funkcija kā parametru ņem prioritātes rindu.

emplace (): Šo funkciju izmantoja elementa pievienošanai prioritārās rindas augšdaļā.

Apskatīsim vēl vienu programmu.

#include #include izmantojot vārdu vietas std int main () {prioritātes_kopa 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 }

Izeja:

2 6 7 9 10 15 30

Ar to mēs esam nonākuši līdz šai prioritātes rindai C ++ rakstā. Ja vēlaties uzzināt vairāk, iepazīstieties ar Autors: uzticams tiešsaistes mācību uzņēmums Edureka. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem kopā ar dažādiem Java ietvariem, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.