Kolejka priorytetowa to kontener w STL. Jest to podobne do kolejki z wyjątkiem tego, że każdy element kolejki priorytetowej ma określony priorytet i kiedy pobieramy elementy z kolejki priorytetowej, elementy o najwyższym priorytecie są pobierane jako pierwsze. Podobnie jak kolejka priorytetowa, istnieje 10 różnych typów kontenerów STL . Kontener to obiekt przechowujący dane. Kontenery STL są implementowane za pomocą klas szablonów, dlatego dostosowanie ich do przechowywania różnych typów danych jest łatwe. W tym poście szczegółowo omówimy kolejkę Priority i koncepcje z nią związane. Poniższe wskazówki zostaną omówione w tym artykule dotyczącym kolejki priorytetowej w języku C ++:
- Składniki STL
- Sterty i kolejka priorytetowa
- Wydruk wszystkich elementów kolejki priorytetowej w C ++
Przechodząc do tego artykułu o kolejkach priorytetowych w języku C ++
Składniki STL
STL składa się z klas szablonów i funkcji, które mogą być używane jako standardowe podejście do przechowywania i przetwarzania danych. Omówmy składniki STL
Pojemniki W STL zdefiniowano 10 typów kontenerów, które są podzielone na 3 kategorie. Spośród tych 3 kolejki priorytetowe należą do kategorii kontenera pochodnego. Każda klasa kontenera ma własny zestaw funkcji, których można użyć do manipulowania danymi.
Algorytm - Algorytm to metoda używana do przetwarzania danych znajdujących się w obiekcie kontenera. STL zapewnia wiele różnych typów algorytmów, które mogą być używane do inicjalizacji, wyszukiwania, sortowania, łączenia, kopiowania. Algorytmy są implementowane za pomocą funkcji szablonów.
Iterator- Iterator to obiekt wskazujący na element w kontenerze. Iteratory mogą pomóc w poruszaniu się po zawartości kontenera. Iteratory są jak wskaźniki, które można zwiększać i zmniejszać. Działa jako łącze między algorytmem a kontenerem. Iteratory służą do manipulowania danymi przechowywanymi w kontenerze.
Przechodząc do tego artykułu o kolejkach priorytetowych w języku C ++
Sterty i kolejka priorytetowa
Jak widzieliśmy wcześniej Priority Queue należy do kategorii kontenerów pochodnych. Inni członkowie tej kategorii to stos i kolejka. Te kontenery pochodne są również znane jako adaptery kontenerów.
Stos, kolejka i kolejka priorytetowa są nazywane kontenerami pochodnymi, ponieważ są wykonane z różnych kontenerów sekwencji. Te kontenery nie obsługują żadnego typu iteratorów, których nie są używane do manipulacji danymi.
Czym dokładnie jest kolejka priorytetowa?
Krótko mówiąc, jest to kontener, w którym przechowywaliśmy dane. Każdemu elementowi przechowywanych danych przypisujemy pewien priorytet, który może pomóc nam w ich logicznym uporządkowaniu.
Składnia:priorytet_kolejka nazwa_zmiennej
Ważne jest, aby dołączyć do programu plik nagłówkowy, aby móc korzystać z kolejki priorytetowej.
struktura oparta na słowach kluczowych w selenie
Na przykład, jeśli dodamy 2, 10, 30, 5, 6 w naszej kolejce priorytetów za pomocą funkcji push, a następnie zdejmiemy elementy za pomocą funkcji pop, wynik będzie wynosił 30, 10, 6, 5, 2.
OK, więc teraz znamy cel lub zastosowanie kolejki priorytetowej. Ale skąd wiedział, że 30> 10? Czy robi jakieś sortowanie? W tym momencie pojawia się Heaps. Aby dowiedzieć się więcej o stosach, zapoznaj się z tym artykułem.
Sterty - sterty są strukturami przypominającymi drzewa. Na podstawie tego, jak węzły elementów podrzędnych są rozmieszczone na stercie w stosunku do węzłów nadrzędnych, sterty są dzielone na 2 części
jeden. Min Heap W Min Heap wartość węzła nadrzędnego jest mniejsza lub równa wartości węzłów podrzędnych.
2. Max Heap W Max Heap wartość węzła nadrzędnego jest większa lub równa wartości węzłów podrzędnych.
Uwaga- Kolejka priorytetowa nie sortuje elementów za pomocą jakiegoś algorytmu sortowania, zamiast tego przechowuje dane w formie stosu.
Przechodząc do tego artykułu o kolejkach priorytetowych w języku C ++
Wydruk wszystkich elementów kolejki priorytetowej
Po zrozumieniu podstaw kolejki priorytetowej, zaimplementujmy programy, które pozwolą zrozumieć najczęściej używane metody z kolejką priorytetową
#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 }
Wynik:
30 15 10 9 6 2
W powyższym programie wykorzystaliśmy funkcje pop (), top () i push (), które są używane przez większość czasu w przypadku kolejki priorytetowej. Przyjrzyjmy się niektórym metodom, których możemy użyć w przypadku kolejki priorytetowej
rozmiar (): Ta funkcja zwraca rozmiar kolejki priorytetowej
pusty (): Ta funkcja służy do sprawdzania, czy kolejka priorytetowa jest pusta, czy nie. Zwraca prawdę, jeśli kolejka priorytetowa jest pusta.
Pchać( ): Wstawia element do kolejki priorytetowej.
Muzyka pop (): Ta funkcja usuwa najwyższy element kolejki priorytetów, czyli element o najwyższym priorytecie.
zamiana( ): Ta funkcja zamienia elementy kolejki priorytetowej z inną kolejką priorytetową. Funkcja przyjmuje kolejkę priorytetową jako parametr.
stanowisko (): Ta funkcja służy do dodawania elementu na początek kolejki priorytetowej.
Spójrzmy na jeszcze 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 }
Wynik:
2 6 7 9 10 15 30
Tym samym kończymy ten artykuł dotyczący kolejki priorytetów w języku C ++. Jeśli chcesz dowiedzieć się więcej, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online. Szkolenie i certyfikacja J2EE i SOA firmy Edureka ma na celu przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
java sort arraylist of integers
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na tym blogu, a skontaktujemy się z Tobą tak szybko, jak to możliwe.