stack,queue和priority_queue

1. stack

1.1 stack 的介紹

棧是一種容器適配器,專門設計用于LIFO環境(后進先出),其中元素僅從容器的一端插入和提取。

容器適配器,也就是使用特定容器類的封裝對象作為其底層容器,提供一組特定的成員函數來訪問其元素。

底層容器可以是任何標準容器類模板或一些其他專門設計的容器類。底層容器應該支持一下操作:

  • empty
  • size
  • back
  • push_back
  • pop_back

一般都是用 vector 或 list 去適配,但是這兩個容器都是各有優劣,于是 C++ 把二者的優點合二為一設計出了 deque。

1.2 stack 的使用

1. push(const T& x)

將元素 x 壓入棧中。

2. pop()

把棧頂元素彈出。

3. size()

返回棧中元素個數。

4. top()

返回棧頂元素。

5. empty()

判斷棧是否為空。

#include<stack>
#include<iostream>using namespace std;int main()
{stack<int> st;for (int i = 0; i < 4; i++){st.push(i + 1);}cout << st.size() << endl;while (!st.empty()){cout << st.top() << ' ';st.pop();}cout << endl;return 0;
}

2. queue

2.1 queue 的介紹

隊列也是一種容器適配器,專門設計用于在FIFO(先進先出)中操作,其中元素插入容器的一端并從另一端提取。

2.2 queue 的使用

queue 的用法和 stack 的用法,大差不差。

1. push(const T& x)

將元素 x 入隊。

2. pop()

將隊頭元素出隊。

3. size()

返回隊列中元素個數。

4. back()

返回隊尾元素。

5. front()

返回對頭元素。

6. empty()

判斷隊列是否為空。

#include<queue>
#include<iostream>using namespace std;int main()
{queue<int> q;for (int i = 0; i < 4; i++){q.push(i + 1);}cout << q.size() << endl;cout << q.back() << endl;while (!q.empty()){cout << q.front() << ' ';q.pop();}cout << endl;return 0;
}

3. priority_queue

3.1?priority_queue 的介紹

優先級隊列也是一種容器適配器,它是由堆這種數據結構封裝的,是嚴格按照順序來存放數據的。

默認是大堆,可以用 greater 類去改變成小堆。

3.2?priority_queue 的使用

和棧幾乎沒有區別。

1. push(const T& x)

將元素 x 入堆

2. pop()

刪除堆中最小元素或最大元素(根據初始化時決定)。

3. size()

返回堆中元素個數。

4. top()

返回堆中最小元素或最大元素(根據初始化時決定)。

5. empty()

判斷堆是否為空。

#include<queue>
#include<deque>
#include<iostream>using namespace std;int main()
{priority_queue<int> pq1;for (int i = 0; i < 4; i++){pq1.push(i + 1);}cout << pq1.size() << endl;while (!pq1.empty()){cout << pq1.top() << ' ';pq1.pop();}cout << endl;priority_queue<int, vector<int>, greater<int>> pq2;// 這里可以用 vector/deque 都可以for (int i = 0; i < 4; i++){pq2.push(i + 1);}cout << pq2.size() << endl;while (!pq2.empty()){cout << pq2.top() << ' ';pq2.pop();}cout << endl;return 0;
}

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

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

相關文章

MinnowBoard MAX單板UEFI BIOS代碼編譯教程

此教程用于UEFI EDK2代碼的研究&#xff0c;雖然EDK2框架代碼開源&#xff0c;但是都是在模擬器上跑仿真&#xff0c;差點意思&#xff0c;搞過嵌入式的應該有一個共識&#xff0c;是騾子是馬&#xff0c;你得把板子點亮啊。MinnowBoard MAX單板是intel10多年前發布的軟硬件全部…

AI Transformers 架構體系 權重文件類型 safeterson和gguf格式轉換【2-1】

模型權重文件&#xff1a;存儲訓練好的模型參數,也就是w和b&#xff0c;是模型推理和微調的基礎 .pt、.ckpt、.safetensors、gguf 配置文件&#xff1a;確保模型架構的一致性&#xff0c;使得權重文件能夠正確加載 config.json、generation_config.json 詞匯表文件&#xff1a;…

K8S微服務部署及模擬故障觀測

概述 本文介紹了如何在 Kubernetes (K8S) 集群中部署微服務&#xff0c;并模擬常見的故障場景&#xff08;如 Pod 故障、節點故障、網絡故障&#xff09;以測試系統的容錯能力。通過本實驗&#xff0c;了解 Kubernetes 的自動恢復機制以及如何通過監控和日志分析快速定位和解決…

OpenStack Yoga版安裝筆記(23)Swift安裝

一、官方文檔 Object Storage Install Guide — Swift 2.29.3.dev5 documentation 二、環境準備 之前的實驗&#xff0c;已經有controller, compute1, block1節點&#xff0c;并已經完成Keystone、Glance、Nova、Neutron、Cinder等主要OpenStack Service的安裝。 此處新增…

06-libVLC的視頻播放器:推流RTMP

創建媒體對象 libvlc_media_t* m = libvlc_media_new_path(m_pInstance, inputPath.toStdString().c_str()); if (!m) return -1; // 創建失敗返回錯誤 libvlc_media_new_path:根據文件路徑創建媒體對象。注意:toStdString().c_str() 在Qt中可能存在臨時字符串析構問題,建議…

少兒編程路線規劃

少兒編程路線規劃—一文寫明白 現在有很多的編程機構&#xff0c;五花八門的。我有幸也見識到了大家的營銷策略。這些策略有黑有白吧&#xff0c;從業幾年&#xff0c;沉淀下來一些客戶角度的干貨&#xff0c;分享給大家。 如果是想以很遠很遠的就業為目的&#xff0c;畢業就…

ios app的ipa文件提交最簡單的方法

ipa文件是ios的app打包后生成的二級制文件&#xff0c;在上架app store connect或做testflight測試的時候&#xff0c;它提示我們需要使用xcode、transporter或xcode命令行等方式來上傳。 而xcode、transporter或xcode命令行的安裝都需要使用mac電腦&#xff0c;假如沒有mac電…

怎么查看LLM Transformer 架構進行并行計算和設備映射

怎么查看LLM Transformer 架構進行并行計算和設備映射 num_hidden_layers = model.config.num_hidden_layers print(num_hidden_layers) print(model) LLM(大語言模型)通常是基于 Transformer 架構 構建的,它由多個模塊化的層(Layer)堆疊組成,每個層都有其獨特的作用。…

微信小程序獲得當前城市,獲得當前天氣

// // 獲取用戶當前所在城市 // wx.getLocation({// type: wgs84, // 默認為 wgs84 返回 gps 坐標,gcj02 返回可用于 wx.openLocation 的坐標 // success: function(res) {// console.log(獲取位置成功, res); // // 使用騰訊地圖API進行逆地址解析 // wx…

美國國土安全部終止資助,CVE漏洞數據庫項目面臨停擺危機

&#xff08;圖片來源&#xff1a;Jerome460 / Shutterstock&#xff09; 25年漏洞追蹤體系即將終結 美國非營利研發組織MITRE宣布&#xff0c;其與美國國土安全部&#xff08;DHS&#xff09;簽訂的"通用漏洞披露&#xff08;CVE&#xff09;"數據庫維護合同將于2…

Kafka下載和使用(Windows版)

Apache Kafka 是一個高吞吐量的分布式消息系統&#xff0c;廣泛應用于日志收集、實時流處理等場景。本文將以 Windows 系統為例&#xff0c;詳細介紹 Kafka 的安裝和使用方法。 一、安裝方式 在 Windows 系統上運行 Apache Kafka&#xff0c;通常有兩種方式&#xff1a; 1.W…

RBAC的使用

1、簡述RBAC的作用及工作流程 Rbac基于角色訪問控制&#xff0c;用于管理用戶對集群資源的訪問權限&#xff0c;通過定義角色和綁定規則&#xff0c;將用戶與權限進行關聯&#xff0c;作用&#xff1a;權限精細化管理&#xff0c;操作便捷與統一管理&#xff0c;動態調整權限。…

【2025年泰迪杯數據挖掘挑戰賽】A題 數據分析+問題建模與求解+Python代碼直接分享

目錄 2025年泰迪杯數據挖掘挑戰賽A題完整論文&#xff1a;建模與求解Python代碼1問題一的思路與求解1.1 問題一的思路1.1.1對統計數據進行必要說明&#xff1a;1.1.2統計流程&#xff1a;1.1.3特殊情況的考慮&#xff1a; 1.2 問題一的求解1.2.1代碼實現1.2.2 問題一結果代碼分…

Ethan獨立開發產品日報 | 2025-04-18

1. Wiza Monitor 跟蹤工作變動&#xff0c;并獲取 Slack 和電子郵件通知。 Wiza Monitor是一款工作變動跟蹤工具&#xff0c;可以實時追蹤客戶和潛在客戶的職位變動&#xff0c;您還能通過電子郵件和Slack接收提醒&#xff0c;并自動更新您的客戶關系管理系統&#xff08;CRM…

【工具變量】A股上市公司信息披露質量KV指數測算數據集(含do代碼 1991-2024年)

KV指數&#xff08;Key Value Index&#xff09;作為評估信息披露質量的關鍵指標&#xff0c;在證券市場&#xff0c;尤其是A股市場上市公司信息披露監管與評估中占據重要地位。該指數通過系統化、定量化的方法&#xff0c;對企業發布的信息進行全面剖析與打分&#xff0c;精準…

【java實現+4種變體完整例子】排序算法中【基數排序】的詳細解析,包含基礎實現、常見變體的完整代碼示例,以及各變體的對比表格

基數排序詳解及代碼示例 基數排序原理 基數排序通過處理每一位數字進行排序&#xff0c;分為 LSD&#xff08;最低位優先&#xff09; 和 MSD&#xff08;最高位優先&#xff09; 兩種方式。核心步驟&#xff1a; 確定最大值&#xff1a;計算數組中最大數的位數。逐位排序&am…

服務治理-服務發現和負載均衡

第一步&#xff1a;引入依賴 第二步&#xff1a;配置地址 改寫購物車服務的代碼 負載均衡成功實現。 假如有一個服務掛了&#xff0c;比如說8081&#xff0c;cart-service能不能正常訪問&#xff0c;感知到。 再重新啟動8081端口。 不管服務宕機也好&#xff0c;還是服務剛啟動…

專題十六:虛擬路由冗余協議——VRRP

一、VRRP簡介 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;虛擬路由冗余協議通過把幾臺設備聯合組成一臺虛擬的設備&#xff0c;使用一定的機制保證當主機的下一跳設備出現故障時&#xff0c;及時將業務切換到備份設備&#xff0c;從而保持通訊的連續性和…

UE5 關卡序列

文章目錄 介紹創建一個關卡序列編輯動畫添加一個物體編輯動畫時間軸顯示秒而不是幀時間軸跳轉到一個確定的時間時間軸的顯示范圍更改關鍵幀的動畫插值方式操作多個關鍵幀 播放動畫 介紹 類似于Unity的Animation動畫&#xff0c;可以用來錄制場景中物體的動畫 創建一個關卡序列…

openbmb/MiniCPM-V-2_6 和 AIDC-AI/Ovis2-1B 的網絡結構體對比

openbmb/MiniCPM-V-2_6和Ovis2作為多模態大模型&#xff0c;在架構設計上既有共性也有顯著差異。以下從核心模塊、技術實現和任務適配三個維度展開對比分析&#xff1a; 一、核心模塊架構對比 1. 視覺編碼器 MiniCPM-V-2_6&#xff1a; 架構&#xff1a;基于SigLIP-400M輕量級…