priority queue stl
Поглиблений огляд черги пріоритетів у STL.
У цій явній серії C ++ ми бачили стеки та черги в попередньому підручнику.
У цьому підручнику ми обговоримо ще один спеціалізований контейнер у STL, тобто чергу пріоритетів.
Як налаштувати мережевий брандмауер -
Пріоритетна черга - це контейнер, що застосовує STL. Пріоритетна черга - це контейнер, що має елементи, розташовані в порядку зменшення, таким чином, що перший елемент завжди є найбільшим елементом у черзі.
=> Відвідайте тут, щоб отримати повний список підручників з C ++.
Що ви дізнаєтесь:
Запитання та відповіді на співбесіду для html5
Огляд
На відміну від звичайної черги, яка штовхає та вискакує елемент відповідно до замовлення FIFO, черга пріоритетів має елементи в порядку зменшення та має пріоритет (фіксований порядок) для кожного елемента
Чергу пріоритетів можна розглядати подібним чином, як структуру даних “максимальної купи” в C ++.
Загальний синтаксис черги пріоритетів:
priority_queue queue_name;
Отже, якщо ми хочемо визначити пріоритетну чергу типу int, ми можемо визначити її наступним чином:
priority_queue mypqueue;
Черга пріоритетів - Операції
Давайте розглянемо операції, що підтримуються чергою пріоритетів, нижче.
- Натисніть: Вставляє елемент у чергу пріоритетів. Під час вставки елементів зберігається пріоритет елементів.
- Поп: Видаляє найвищий елемент із черги пріоритетів.
- Зверху: Повертає самий верхній елемент у черзі пріоритетів, тобто найбільший елемент у черзі пріоритетів.
- Порожній: Перевіряє, чи черга пріоритетів порожня.
- Розмір: Повертає розмір черги пріоритетів, тобто кількість елементів у черзі пріоритетів.
Давайте напишемо програму, щоб продемонструвати використання цих функцій / операцій.
#include #include using namespace std; void displaypq(priority_queue pri_queue) { priority_queue pq = pri_queue; while (!pq.empty()) { cout << ' ' << pq.top(); pq.pop(); } cout << '
'; } int main () { priority_queue mypq; mypq.push(1); mypq.push(3); mypq.push(60); cout<<'
Priority queue after inserting value 60: '; displaypq(mypq); mypq.push(5); cout<<'
Priority queue after inserting value 5: '; displaypq(mypq); mypq.push(10); cout << '
The priority queue mypq is : '; displaypq(mypq); cout << '
mypq.size() : ' << mypq.size(); cout << '
mypq.top() : ' << mypq.top(); cout << '
mypq.pop() : '; mypq.pop(); displaypq(mypq); return 0; }
Вихід:
Черга пріоритетів після вставки значення 60: 60 3 1
Черга пріоритетів після вставки значення 5: 60 5 3 1
як відкрити bin файли в android - -
Черга пріоритетів mypq: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
Будь ласка, уважно перевірте вихідні дані, щоб зрозуміти чергу пріоритетів. Спочатку ми натискаємо значення 1,3,60, як показано в першому рядку виводу. Потім ми натискаємо значення 5 у черзі пріоритетів. Після цього відображається черга пріоритетів. Зверніть увагу, що хоча значення 5 натискається після 60, верхня частина черги пріоритетів все ще залишається 60.
Знову ми натискаємо ще одне значення 10, і все ж верхня частина черги пріоритетів дорівнює 60. Це відбувається тому, що під час натискання елементів порядок або пріоритет елементів підтримується таким чином, що найбільший елемент завжди знаходиться вгорі.
Висновок
Мова йшла про впровадження черги пріоритетів у STL. У нашому наступному підручнику ми дізнаємося більше про контейнери STL, такі як map і set.
=> Клацніть тут, щоб переглянути абсолютну серію навчальних програм C ++.