Како имплементирати приоритетни ред у Ц ++



Овај чланак ће вам пружити детаљно и свеобухватно знање о томе како применити приоритетни ред у Ц ++ са примерима.

Приоритетни ред је контејнер у СТЛ-у. Сличан је реду, осим чињенице да сваки елемент реда приоритета има одређени приоритет и када избацимо елементе из реда приоритета, прво се искачу елементи са највишим приоритетом. Као и приоритетни ред, и овде постоји 10 различитих врста контејнера СТЛ . Контејнер је објекат који чува податке. СТЛ контејнери су имплементирани уз помоћ класа предложака, па је лако прилагодити их да држе различите врсте података. У овом посту детаљно ћемо размотрити приоритетни ред и концепте повезане с њим. Следећи показивачи ће бити покривени у овом приоритетном реду у чланку Ц ++,

Настављамо са овим чланком о Приоритетном реду у језику Ц ++





Компоненте СТЛ

СТЛ се састоји од класа шаблона и функција које се могу користити као стандардни приступ за чување и обраду података. Разговарајмо о компонентама СТЛ-а

Контејнери- Постоји 10 врста контејнера дефинисаних у СТЛ-у и они су груписани у 3 категорије. Од ове 3, приоритетни редови припадају категорији изведеног контејнера. Свака класа контејнера има свој скуп функција којима се може манипулисати подацима.



Алгоритам - Алгоритам је метода која се користи за обраду података присутних у објекту контејнера. СТЛ пружа много различитих типова алгоритама који се могу користити у иницијализацији, претраживању, сортирању, спајању, копирању. Алгоритми се реализују уз помоћ функција шаблона.

Итератор- Итератор је објекат који показује према елементу у контејнеру. Итератори вам могу помоћи у кретању кроз садржај контејнера. Итератори су попут показивача који се могу повећавати и смањивати. Делује као веза између алгоритма и контејнера. Итератори се користе за манипулисање подацима ускладиштеним у контејнеру.

Настављамо са овим чланком о Приоритетном реду у језику Ц ++



Гомиле и приоритетни ред

Као што смо раније видели, Приоритетни ред припада категорији изведених контејнера. Остали чланови ове категорије су стог и ред. Ови изведени контејнери су такође познати и као адаптери за контејнере.

створити низ објеката јава

Стек, ред и приоритетни ред познати су као изведени контејнери јер су направљени од различитих контејнера за секвенце. Ови контејнери не подржавају било који тип итератора и не користе се за манипулацију подацима.

Шта је тачно приоритетни ред?

Једноставним речима, то је контејнер који смо користили за чување података. Сваком елементу сачуваних података додељен је неки приоритет који нам може помоћи у складиштењу података у логичном редоследу.
Синтакса:приоритет_реда име_променљиве

Важно је у програм укључити заглавље како бисте користили приоритетни ред.

ред приоритета у ц ++На пример, ако додамо 2, 10, 30, 5, 6 у наш приоритетни ред користећи функцију пусх, а затим поп елементе помоћу функције поп, излаз ће бити 30, 10, 6, 5, 2.

У реду, сада знамо сврху или употребу реда приоритета. Али како је могло знати да ли је 30> 10? Да ли ради неку врсту сортирања? У овом тренутку гомиле долазе у слику. Да бисте детаљније сазнали о гомилама, погледајте овај чланак.

Гомиле - хрпе су структуре налик дрвећу. На основу тога како су чворови подређених елемената распоређени у хрпу у односу на родитељске чворове, гомиле су подељене на 2 дела

један. Мин Хеап- У Мин Хеап-у вредност надређеног чвора је мања или једнака вредности подређених чворова.

2. Мак Хеап- У Мак Хеап-у, вредност надређеног чвора је већа или једнака вредности подређених чворова.

Белешка- Редослед приоритета не сортира елементе помоћу неког алгоритма за сортирање, већ је податке сачувао у облику гомиле.

Настављамо са овим чланком о Приоритетном реду у језику Ц ++

Штампање свих елемената приоритетног реда

Након разумевања основа приоритетног реда, применимо програме за разумевање најчешће коришћених метода са приоритетним редом

#инцлуде #инцлуде усинг намеспаце стд инт маин () {приор_куеуе Приор_к Приор_к.пусх (10) Приор_к.пусх (30) Приор_к.пусх (6) Приор_к.пусх (2) Приор_к.пусх (15) Приор_к.пусх (9) Приор_к.пусх (7) вхиле (Приор_к.емпти () == фалсе) {цоут<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Излаз:

30 15 10 9 6 2

У горе наведеном програму користили смо функције поп (), топ () и пусх () које се користе већину времена док имамо посла са приоритетним редом. Погледајмо неке од метода које можемо користити са приоритетним редом

величина (): Ова функција даје величину реда приоритета

празно (): Ова функција се користи за проверу да ли је приоритетни ред празан или не. Враћа труе јер је приоритетни ред празан.

употреба класе скенера у јави

пусх (): Умеће елемент у приоритетни ред.

поп (): Ова функција уклања горњи елемент реда приоритета који је елемент с највишим приоритетом.

свап (): Ова функција замењује елементе реда приоритета са другим редом приоритета. Функција узима ред приоритета као параметар.

емплаце (): Ова функција се користи за додавање елемента на врх реда приоритета.

Погледајмо још један програм.

#инцлуде #инцлуде усинг намеспаце стд инт маин () {приор_куеуе Приор_к Приор_к.пусх (10) Приор_к.пусх (30) Приор_к.пусх (6) Приор_к.пусх (2) Приор_к.пусх (15) Приор_к.пусх (9) Приор_к.пусх (7) вхиле (Приор_к.емпти () == фалсе) {цоут<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Излаз:

2 6 7 9 10 15 30

Овим смо дошли до краја овог реда приоритета у чланку на Ц ++. Ако желите да сазнате више, погледајте Едурека, поуздана компанија за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га спомињете у одељку за коментаре овог блога и јавићемо вам се што је пре могуће.