STL——priority_queue的使用(快速入門詳細)

目錄

前言

一、基本知識

二、使用


前言

priority_queue是在queue庫里的,所以使用的時候要包含queue頭文件。使用方法和堆類似,因為它的底層其實就是大根堆。


一、基本知識

優先隊列

優先級隊列是一種容器適配器,根據一些嚴格的弱排序標準,專門設計為它的第一個元素始終是它所包含的元素中最大的一個。
此上下文類似于堆,可以隨時插入元素,并且只能檢索最大堆元素(優先級隊列中頂部的元素)。
優先級隊列作為容器適配器實現,容器適配器是使用特定容器類的封裝對象作為其底層容器的類,提供一組特定的成員函數來訪問其元素。元素從特定容器的“背面”彈出,這稱為優先級隊列的頂部。

二、使用

優先級隊列默認使用vector作為其底層存儲數據的容器,在vector上又使用了堆算法將vector中元素構造成堆的結構,因此priority_queue就是堆,所有需要用到堆的位置,都可以考慮使用priority_queue。注意:默認情況下priority_queue是大堆。

函數聲明接口說明
priority_queue()/priority_queue(first, last)構造一個空的優先級隊列
empty( )檢測優先級隊列是否為空,是返回true,否則返回false
top( )返回優先級隊列中最大(最小元素),即堆頂元素
push(x)在優先級隊列中插入元素x
pop()刪除優先級隊列中最大(最小)元素,即堆頂元素

使用方法很簡單,一段代碼快速掌握:

#include<iostream>
#include<queue>
using namespace std;
int main()
{priority_queue<int> vv;//初始化vv.push(4);//壓入數據vv.push(2);vv.push(1);vv.push(3);while (!vv.empty())//檢查是否為空{cout << vv.top() << " ";//訪問數據vv.pop();//彈出數據}cout << endl;//如果是要小的優先級高的話priority_queue<int, vector<int>, greater<int>> aa;aa.push(4);aa.push(2);aa.push(1);aa.push(3);while (!aa.empty()){cout << aa.top() << " ";aa.pop();}cout << endl;return 0;
}

可以運行一下看看結果是什么?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94370.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MATLAB中函數的詳細使用

一、函數基本知識function語法&#xff1a; function [,...,] myfun(,...,)&#xff0c; …

服務器初始化流程***

前言在云計算與自動化運維日益成熟的今天&#xff0c;快速、批量地部署服務器已成為常態。然而&#xff0c;一臺新構建的云服務器或新安裝的物理服務器&#xff0c;僅僅是一個可運行的操作系統內核&#xff0c;遠未達到投入生產環境或開發測試的標準。一個缺乏標準化配置的“裸…

Python實現電商Excel讀取進行可視化分析

目錄專欄導讀項目簡介功能特性&#x1f4ca; 數據處理功能&#x1f4c8; 統計分析功能&#x1f3a8; 可視化功能&#x1f4cb; 報告生成項目結構安裝和使用環境要求安裝步驟使用自己的數據依賴包說明輸出文件說明靜態圖表&#xff08;PNG格式&#xff09;交互式圖表&#xff08…

肌肉力量訓練

健身一年多瘦了十幾斤&#xff0c;沒有像上次一樣吃輕食哦。每天早晨跑步或者做力量訓練&#xff0c;中午和晚上吃完飯遛遛彎&#xff0c;堅持下來就好了。 但力量訓練一直沒有請教練&#xff0c;自己也沒查資料&#xff0c;算是瞎練吧。最近發現了一本好書&#xff0c;講解如何…

微服務-27.配置管理-什么是配置管理

一.配置管理到目前為止我們已經解決了微服務相關的幾個問題&#xff1a;微服務遠程調用微服務注冊、發現微服務請求路由、負載均衡微服務登錄用戶信息傳遞不過&#xff0c;現在依然還有幾個問題需要解決&#xff1a;我們發現很多微服務中的配置文件里的配置都是重復的。修改編輯…

【RAGFlow代碼詳解-13】RAG 管道

管道架構概述 RAG 管道由多個處理階段組成&#xff0c;這些階段將文本內容轉換為適合智能檢索的結構化知識表示&#xff1a;文檔到知識圖譜工作流程 主要處理工作流程通過 run_graphrag 功能將單個文檔塊轉換為統一的知識圖譜&#xff1a;GraphRAG 處理方法 RAGFlow 支持兩種不…

深度學習——模型訓練

以Pytorch自帶的手寫數據集為例。我們已經構建了一個輸入層&#xff08;28*28&#xff09;&#xff0c;兩個隱藏層&#xff08;128和256&#xff09;&#xff0c;一個輸出層&#xff08;10&#xff09;的人工神經網絡。并且結合非線性激活函數sigmoid定義前向傳播的方向。class…

使用Kiro智能開發PYTHON應用程序

文章目錄使用Kiro智能開發PYTHON應用程序1. 什么是KIRO&#xff1f;2. 獲取KIRO3. 安裝KIRO4. 用KIRO開發智能應用程序6. 推薦閱讀使用Kiro智能開發PYTHON應用程序 By JacksonML KIRO是AWS亞馬遜云科技旗下的獨立AI產品&#xff0c;是用來開發生產級應用程序的AI IDE。 本文簡…

UNIX網絡編程筆記:高級套接字編程12-19

IPv4與IPv6互操作性&#xff1a;技術解析與實踐指南 在網絡協議演進進程中&#xff0c;IPv4向IPv6的過渡是繞不開的關鍵階段。盡管IPv6憑借海量地址、更優擴展性成為發展方向&#xff0c;但IPv4設備與網絡的廣泛存在&#xff0c;使得二者的互操作性成為保障網絡平滑演進、業務持…

同類軟件對比(一):Visual Studio(IDE) VS Visual Studio Code

文章目錄前言一、Visual Studio&#xff08;IDE&#xff09;是什么&#xff1f;二、Visual Studio Code 是什么&#xff1f;三、兩者的相同點四、兩者的不同點五、實戰選擇建議總結前言 Visual Studio 和 Visual Studio Code&#xff0c;它們一個是微軟旗下的老牌霸主&#xf…

數據結構初階:詳解單鏈表(一)

&#x1f525;個人主頁&#xff1a;胡蘿卜3.0 &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a; 《C語言》《數據結構》 《C干貨分享》 ??人生格言&#xff1a;不試試怎么知道自己行不行 目錄 順序表問題與思考 正文 一、單鏈表 1.…

塞爾達傳說 曠野之息 PC/手機雙端(The Legend of Zelda: Breath of the Wild)免安裝中文版

網盤鏈接&#xff1a; 塞爾達傳說 曠野之息 免安裝中文版 名稱&#xff1a;塞爾達傳說 曠野之息 PC/手機雙端 免安裝中文版 描述&#xff1a;忘記你所知道的關于塞爾達傳說游戲的一切。在《塞爾達傳說&#xff1a;曠野之息》中步入一個充滿發現、探索和冒險的世界&#xff0…

【分享開題答辯過程】一輛摩托車帶來的通關副本攻略----《摩托車網上銷售系統》開題答辯!!

一、開題陳述 各位評委老師好&#xff0c;我是A同學。 本次我設計與實現的是基于ASP.NET的摩托車網上銷售系統&#xff0c;該系統以 MySQL 為后臺數據庫&#xff0c;主要解決當前社會背景下用戶線下看車購車困難的問題&#xff0c;同時順應摩托車網絡營銷的發展趨勢&#xff…

python + unicorn + xgboost + pytorch 搭建機器學習訓練平臺遇到的問題

1.背景前段時間&#xff0c;使用 python unicorn xgboost pytorch 寫了一個機器學習訓練平臺的后端服務&#xff0c;根據公司開發需要&#xff0c;需具備兩種需求&#xff1a;1. 可以本地加載使用&#xff1b;2.支持web服務&#xff0c;2. 使用本地加載使用2.1 問題針對第一…

Odoo 非標項目型生產行業解決方案:專業、完整、開源

概述您眼前的這張應用藍圖&#xff0c;是由 Odoo 官方金牌服務商——開源智造 (OSCG) 憑借多年在非標項目型制造領域的深厚積累&#xff0c;精心設計的 Odoo 解決方案核心流程圖。它不僅體現了我們對行業復雜業務場景的深刻理解&#xff0c;更彰顯了我們將先進的管理理念與強大…

OpenAI 開源模型 gpt-oss 是在合成數據上訓練的嗎?一些合理推測

編者按&#xff1a; OpenAI 首次發布的開源大模型 gpt-oss 系列為何在基準測試中表現亮眼&#xff0c;卻在實際應用后發現不如預期&#xff1f; 我們今天為大家帶來的這篇文章&#xff0c;作者推測 OpenAI 的新開源模型本質上就是微軟 Phi 模型的翻版&#xff0c;采用了相同的合…

Linux / 寶塔面板下 PHP OPcache 完整實踐指南

Linux / 寶塔面板下 PHP OPcache 完整實踐指南 OPcache 是 PHP 官方提供的字節碼緩存擴展&#xff0c;通過緩存 PHP 腳本的編譯結果&#xff0c;提高 PHP 執行效率。本文講解從 檢測 → 開啟 → 使用 → 清理 → 排查問題 的全流程&#xff0c;同時針對寶塔面板界面不實用或無法…

Linux(從入門到精通)

Linux概述 Linux內核最初只是由芬蘭人林納斯托瓦茲1991年在赫爾辛基大學上學時出于個人愛好而編寫的。 Linux特點 首先Linux作為自由軟件有兩個特點:一是它免費提供源代碼,二是愛好者可以根據自己的需要自由修改、復制和發布源碼 Linux的各個發行版本 Linux 的發行版說簡單…

鏈表相關題目---19、刪除鏈表的倒數第N個節點

題目鏈接&#xff1a;刪除鏈表的倒數第N個節點 這道題 很常規的思路就是 先拷貝兩次頭結點 然后一個先走N步 然后同時開始走&#xff0c;直到先走N步的節點為空后&#xff0c;就停止&#xff0c;此時另一個沒提前走的節點的下一個就是要刪除的節點。不過需要注意的是&#xff0…

Vue工具類使用指南:實用函數與全局組件安裝

概述在Vue項目開發中&#xff0c;我們經常需要一些通用的工具函數來處理路徑轉換、鏈接判斷、數據格式化等任務。本文將介紹一個實用的Vue工具類&#xff0c;包含多種常用功能&#xff0c;并演示如何在項目中使用它們。工具函數詳解1. 路徑轉駝峰命名import { pathToCamel } fr…