Udostępnij za pośrednictwem


priority_queue — Klasa

Szablon klasy Adapter kontenera, która zapewnia ograniczenia funkcjonalności ograniczenie dostępu do elementu najwyższego niektórych podstawowych typu kontenera, zawsze jest największy lub o najwyższym priorytecie.Nowe elementy mogą być dodawane do priority_queue i sprawdzenia lub usunięty górnego elementu priority_queue.

template < 
   class Type,  
   class Container=vector<Type>, 
   class Compare=less<typename Container::value_type>  
> 
class priority_queue

Parametry

  • Typ
    Typ elementu danych mają być przechowywane w priority_queue.

  • Container
    Typ kontenera podstawowych używanych do implementacji priority_queue.

  • Porównaj
    Typ, który zawiera obiekt funkcji, które można porównać dwie wartości elementu jako klucze sortowania do określenia ich względną kolejność w priority_queue.Ten argument jest opcjonalny i predykat dwuelementowy mniej*<typename kontenera*:: value_type***>* jest wartością domyślną.

Uwagi

Elementy klasy typu określone w szablonie pierwszy parametr obiektu typu kolejka jest równoznaczne z value_type i musi odpowiadać typowi elementu w klasie podstawowej kontener kontenera przewidzianych przez drugi parametr szablonu.Typu musi być możliwa do przypisania, tak, że jest możliwe, aby skopiować obiekty tego typu i przypisywania wartości do zmiennych tego typu.

Priority_queue zamówień sekwencji kontroluje przez wywołanie obiektu przechowywanej funkcji klasy cechy.Ogólnie rzecz biorąc, elementy muszą być nieco mniej porównywalne, aby ustalić kolejność: tak aby, mając dowolne dwa elementy, można było określić, czy są one równoważne (w sensie, żaden nie jest mniejszy niż ten drugi) lub, że jeden jest mniejszy niż ten drugi.Powoduje porządkowanie między elementami nonequivalent.Ze strony bardziej technicznej, funkcja porównania jest predykatem dwuargumentowym, który wymusza ścisłe słabe porządkowanie w standardowym sensie matematycznym.

Obejmują odpowiednie podstawowych klas kontener dla priority_queue deque klasy oraz domyślną wektor klasy lub inne kontener sekwencji, który obsługuje operacje z front, push_back, i pop_back i sterująca dostępie losowym.Kontener klasy podstawowej jest zhermetyzowana wewnątrz przejściówki kontenera, który udostępnia tylko ograniczony zestaw funkcji elementów członkowskich kontenera sekwencji jako interfejsu publicznego.

Elementy do dodawania i usuwania elementów z priority_queue oba mają logarytmiczną złożoność.Dostęp do elementów w priority_queue ma stałą złożoność.

Istnieją trzy typy kart adapterów pojemnika zdefiniowane przez STL: stosu, kolejki i priority_queue.Każdy ogranicza funkcjonalność niektórych podstawowych klasy pojemnika zapewnia precyzyjne sterowanie interfejs do struktury danych standardowych.

  • Stosu klasy obsługuje last-in, first-out (LIFO) strukturę danych.Analogowo pamiętać byłoby stosem talerzy.Elementy (płytki) może wstawiania, kontrolowane lub usuwane tylko z góry stosu, który jest ostatnim elementem na końcu podstawowym kontenerem.Ograniczenie dostępu do tylko do górnego elementu jest przyczyna za pomocą klasy stosu.

  • Kolejki klasy obsługuje pierwszej in, first-out (FIFO) strukturę danych.Analogowo pamiętać będzie ludzi w kolejce do kasjera w banku.Elementy (osób) mogą być dodawane do tyłu w linii i są usuwane z początku wiersza.Zarówno z przodu i z tyłu linii może być kontrolowane.Ograniczenie dostępu do tylko przednia i tylna elementy w ten sposób jest przyczyna za pomocą klasy kolejki.

  • Klasa priority_queue zamówień jego elementy, dzięki czemu największy element jest zawsze w górnej pozycji.Obsługuje wstawiania elementu i kontroli oraz usuwania elementu top.Analogowo pamiętać będzie ludzi w kolejce gdzie są rozmieszczane według wieku, wysokość lub innego kryterium.

Konstruktorów

priority_queue

Konstrukcje priority_queue oznacza to puste lub który jest kopią zakres obiektu kontenera podstawowego lub innych priority_queue.

Typedefs

container_type

Typ, który stanowi podstawowy kontener dostosowane przez priority_queue.

size_type

Typ liczby całkowitej bez znaku, który może reprezentować liczbę elementów w priority_queue.

value_type

Typ, który reprezentuje typ obiektu przechowywane jako element priority_queue.

Funkcje członkowskie

pusty

Testy, jeśli priority_queue jest pusty.

POP

Usuwa element największą priority_queue z górnej pozycji.

push

Dodaje element do kolejki priorytetu na podstawie priorytetu element od operatora<.

rozmiar

Zwraca liczbę elementów w priority_queue.

TOP

Zwraca const odwołać się do największego elementu w górnej części priority_queue.

Wymagania

Nagłówek:<kolejki>

Przestrzeń nazw: std

Zobacz też

Informacje

Bezpieczeństwo wątku w standardowej bibliotece C++

Standardowa biblioteka szablonów