Stack、Queue and Deque

文章目錄

  • 一、適配器
  • 二、stcak模擬實現
  • 三、queue模擬實現
  • 四、vector和list的優缺點
  • 五、deque
  • 六、deque的優缺點
  • 七、deque為什么作為stack和queue的默認適配容器

一、適配器

? ? ? ? ? ?1.適配器的概念:

? ? ? ? ? ? ??封裝一個已有對象,轉換其接口

? ? ? ? ? ?2.容器適配器:

? ? ? ? ? ? ? ?封裝一個已有容器對象,轉換其容器對象的接口

? ? ? ? ? ?3.容器適配器中沒有迭代器

? ? ? ? ? ? (1)行為約束,保證棧后進先出和隊列先進先出行為

? ? ? ? ? ? (2)安全保證,避免破壞內部結構,如:priority_queue的堆序性

? ? ? ? ? ?4.適配器模式:

? ? ? ? ? ? ? 封裝舊對象 + 接口轉換層

? ? ? ? ? ? ? 適配器模式體現封裝和代碼的復用

二、stcak模擬實現

? ? ? ? ? ?1.stcak棧頂出入數據,后進先出

? ? ? ? ? ?2.stack的底層可以是數組結構也可以是鏈式結構

? ? ? ? ? ? ? 而stack的接口只需要保證擁有push,pop,top...等操作以及保證后進先出

? ? ? ? ? ? ? 棧頂出入數據

? ? ? ? ? ? (1)棧的底層可以是數組也可以是鏈表,跟vector和list的底層一樣

? ? ? ? ? ? (2)棧的接口push,pop,top...等操作的行為,vector和list中也擁有

? ? ? ? ? ? (3)(1) + (2)表明棧的實現可以封裝一個·vector/list容器的對象

? ? ? ? ? ? ? ? ? ? ?在棧的接口中轉換vector/list的接口,實現代碼的復用

? ? ? ? ? ? (4)實現棧的邏輯 == 封裝一個已有的容器對象 + 轉換其容器對象的接口

? ? ? ? ? ? ? ? ? ? ?所以棧為容器適配器

? ? ? ? ?3.stack模擬實現

? ? ? ? ?4.根據出棧的時機不同,出棧的順序也會不一樣? ? ? ? ? ?

三、queue模擬實現

? ? ? ? ? ?1.隊尾入數據,隊頭出數據,先進先出

? ? ? ? ? ?2.?queue的底層可以為鏈式結構

? ? ? ? ? ? ???而queue的接口只需要保證擁有push,pop,top...等操作以及保證先進先出

? ? ? ? ? ? ? ?隊尾入數據,隊頭出數據

? ? ? ? ? ? (1)隊列的底層可以是鏈表,跟list的底層一樣

? ? ? ? ? ? (2)隊列的接口push,pop,top...等操作的行為,list中也擁有

? ? ? ? ? ? (3)(1) + (2)表明隊列的實現可以封裝一個list容器的對象

? ? ? ? ? ? ? ? ? ? ?在隊列的接口中轉換list的接口,實現代碼的復用

? ? ? ? ? ? (4)實現隊列的邏輯 == 封裝一個已有的容器對象 + 轉換其容器對象的接口

? ? ? ? ? ? ? ? ? ? ?所以對列為容器適配器

? ? ? ? ? ? (5)queue之所以不支持數組結構也就是vector原因是數組結構頭部刪除需要挪動數據

? ? ? ? ? 3.queue模擬實現

? ? ? ? ?4. 無論出隊列的時機如何,出隊列的順序都是一致的

?四、vector和list的優缺點

? ? ? ? ? ? ?1.vector

? ? ? ? ? ? ? ? 優點:

? ? ? ? ? ? ? (1)支持[]下標訪問,速度效率快

? ? ? ? ? ? ? (2)cpu高速緩存命中率高

? ? ? ? ? ? ? (3)內存利用效率高,不存在為存儲指針開辟內存

? ? ? ? ? ? ? (4)尾插尾刪效率高,插入只需要在尾部增添數據,刪除只需要--_size

? ? ? ? ? ? ? ???缺點:

? ? ? ? ? ? ? (1)頭部中間位置插入刪除效率低,因為要挪動數據

? ? ? ? ? ? ? (2)空間不足需要擴容,而c++的擴容又都是異地擴容

? ? ? ? ? ? ? ? ? ? ?(開辟一塊新空間,拷貝舊空間的數據,釋放舊空間)

? ? ? ? ? ? ? ? ? ? ? ? 擴容代價高

? ? ? ? ? ? ?? (3)存在空間的浪費,比如:當前空間為100,有效數據個數為100

? ? ? ? ? ? ? ? ? ? ? ??此時插入一個新數據,需要擴容至200,之后便不再使用該vector

? ? ? ? ? ? ? ? ? ? ? ? 那么就會浪費99個數據的空間

? ? ? ? ? ? ? 2.list

? ? ? ? ? ? ? ? ?優點:

? ? ? ? ? ? ? ?(1)任意位置的插入刪除效率高,不需要挪動數據,只需要更改結點中的指針的指向

? ? ? ? ? ? ? ?(2)不存在擴容和浪費空間,存儲多少個數據那么舊申請多少個結點

? ? ? ? ? ? ? ? ??缺點:

? ? ? ? ? ? ? ? (1)不支持[]下標訪問,如果需要一下子跳躍很多數據,效率低

? ? ? ? ? ? ? ? (2)cpu高速緩存命中率低

? ? ? ? ? ? ? ? (3)內存利用效率低,因為結點中存儲上一個結點和下一個結點的指針

? ? ? ? ? ? ? ?3.vector的優點就是list的缺點,list的優點就是vector的缺點

? ? ? ? ? ? ? ? ??vector和list屬于互補的關系

? ? ? ? ? ? ? ?4.cpu高速緩存命中率

? ? ? ? ? ? ? ? (1)數據是存儲在內存當中的,內存的速度跟不上cpu的速度

? ? ? ? ? ? ? ? (2)當cpu需要處理數據時,正因為內存的速度跟不上cpu的速度

? ? ? ? ? ? ? ? ? ? ? ? ?所以cpu不會直接去內存中獲取數據,而是向緩存中獲取數據

? ? ? ? ? ? ? ?(3)如果cpu向緩存中獲取數據成功,那么就稱作cpu高速緩存命中成功

? ? ? ? ? ? ? ? ? ? ? ? 如果cpu向緩存中獲取數據失敗,那么就稱作cpu高速緩存命中失敗

? ? ? ? ? ? ? ? (4)如果cpu向緩存中獲取數據失敗,那么緩存就會向內存中獲取該數據

? ? ? ? ? ? ? ??? ? ? ? ?然后cpu再向緩存中獲取數據

? ? ? ? ? ? ? ? (5)緩存向內存獲取數據,并不是只將該數據拷貝到緩存

? ? ? ? ? ? ? ? ? ? ? ? ? 而是將該數據及該數據附近位置的數據全部拷貝到緩存

? ? ? ? ? ? ? ? 5.vector cpu高速緩存命中率高正是因為底層是數組結構,數組物理地址空間是連續的

? ? ? ? ? ? ? ? ? ?如果首次cpu高速緩存命中失敗,緩存向內存中拷貝該數據時,就會將數組附近都拷貝

? ? ? ? ? ? ? ? ? ?到緩存當中,那么接下來cpu訪問的數組的數據時,大部分都會直接命中

? ? ? ? ? ? ? ? ? ?list cpu高速緩存命中率低正是因為底層是鏈式結構,物理地址空間是不連續的

? ? ? ? ? ? ? ? ? ?如果首次cpu高速緩存命中失敗,緩存向內存拷貝該數據時,會將該數據物理空間地址

? ? ? ? ? ? ? ? ? ?連續的一部分拷貝到緩存,可是鏈表的物理空間地址是不連續的,所以拷貝到緩存中

? ? ? ? ? ? ? ? ? ?是否有下一個結點的數據是不可知的,那么當繼續訪問鏈表的數據,就又會產生命中

? ? ? ? ? ? ? ? ? ?失敗緩存再次區內存中拷貝該數據及其物理空間地址附近的數據

五、deque

? ? ? ? ? ? ? ? 1.deque的使用

? ? ? ? ? ? ? ? ? ?通過觀察deque的接口可以發現,deque支持頭部尾部的插入刪除

? ? ? ? ? ? ? ? ? ?也支持[]下標訪問,特別像是vector和list的融合體?

? ? ? ? ? ? ? ? 2.vector的優點就是list的缺點,list的優點就是vector的缺點

? ? ? ? ? ? ? ? ? ?那么有沒有一種數據結構,使得頭部尾部的插入刪除效率高,支持[]下標訪問,

? ? ? ? ? ? ? ? ? ?cpu高速緩存命中率高

? ? ? ? ? ? ? ? ? ?那么就是deque

? ? ? ? ? ? ? ? 3.deque正是結合了vector和list的優點而產生的

? ? ? ? ? ? ? ? 4.deque的底層結構

? ? ? ? ? ? ? ? ? ? (1)deque的成員變量為一個數組指針

? ? ? ? ? ? ? ? ? ? (2)該成員變量指向一個中控數組

? ? ? ? ? ? ? ? ? ? (3)中控數組又是一個存儲指針的數組,存儲著每一個buffer數組的指針?

? ? ? ? ? ? ? ? ? ? (4)當存儲數據的空間不足時,只需要新增一個buffer數組,不需要擴容和拷貝數據

? ? ? ? ? ? ? ?? ? ? ? ? ? ? 只有當中控數組滿了時,才需要對中控數組進行擴容,當然中控數組中存儲的

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?是指針,擴容拷貝的代價不會太大,并且中控數組擴容的次數還會比較少

? ? ? ? ? ? ? ? ? ? (5)因為每一個buffer數組都比較小,所以不會出現浪費太多空間的場景

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?假設一個buffer大小為n,插入了x個數據,那么也只會浪費n - x個空間

? ? ? ? ? ? ? ? 5.deque的迭代器? ? ? ? ? ? ? ?(1)cur是指向當前迭代器所在的buffer數組中的元素的指針 T*

? ? ? ? ? ? ? ?(2)first是指向當前迭代器所在的buffer數組中起始位置的指針 T*

? ? ? ? ? ? ? ?(3)last是指向當前迭代器所在的buffer數組中最后一個數據的下一個位置的指針 T*? ?

? ? ? ? ? ? ? ?(4)node是指向當前迭代器所在的buffer數組在中控數組中位置的指針 T**

? ? ? ? ? ? ? ? ? ? ? ? 中控數組中存儲的是buffer數組的起始地址,也就是T*

? ? ? ? ? ? ? ? ? ? ? ? 那么指向中控數組中位置的指針就是T**

? ? ? ? ? ? ? ? ? ? ? ? 首先指向中控數組中的位置,那么就是一個指針需要一個*

? ? ? ? ? ? ? ? ? ? ? ? 而中控數組中的數據類型又是T*,所以主席昂中控數組中位置的指針為T**

? ? ? ? ? ? ? ? ?6.deque的遍歷? ? ? ? ? ? ? ? ?? ? ? ? ? ? (1)start表示第一個有效數據的迭代器? ? ? ? ? ? ? ? ? ==? ?begin()

? ? ? ? ? ? (2)finish表示最后一個有效數據下一個位置的迭代器? ==? ?end()

? ? ? ? ? ? (3)判斷兩個迭代器是否相等(!=)

? ? ? ? ? ? ? ? ? ? ?只需要比較cur就可以

? ? ? ? ? ? ? ? ? ? ?因為不同buffer中的cur不相等,相同buffer中不同位置的數據的cur不相等

? ? ? ? ? ? ? ? ? ? ?而迭代器相等是指相同buffer中的相同位置

? ? ? ? ? ? ? ? ? ? 所以!=子需要比較cur

? ? ? ? ? ? (4)*解引用

? ? ? ? ? ? ? ? ? ? ?*解引用只需要解引用cur就可以了

? ? ? ? ? ? ? ? ? ? ? 因為cur是指向當前迭代器所在的buffer數組中的元素的指針 T*

? ? ? ? ? ? (5)++迭代器

? ? ? ? ? ? ? ? ? ? ? 本質上就是++cur,但是當cur == last表明當前buffer數組已經遍歷完畢

? ? ? ? ? ? ? ? ? ? ? 需要跳轉到下一個buffer數組,而要跳轉到下一個buffer數組只需要++node

? ? ? ? ? ? ? ? ? ? ? 因為node是指向當前迭代器所在的buffer數組在中控數組中位置的指針

? ? ? ? ? ? ? ? ? ? ? 指向中控數組中位置的指針,++就是中控數組的下一個位置的指針

? ? ? ? ? ? ? ? ? ? ? 此時*node就為新的buffer數組的起始位置的指針

? ? ? ? ? ? ? ? ? ? ? 緊接著以此更新first,cur,last就可以得到新的buffer數組中第一個有效元素

? ? ? ? ? ? ? ? ? ? ? 的迭代器

? ? ? ? ? ?7.deque的尾插尾刪

? ? ? ? ? ? (1)deque的尾插尾刪是借組finish迭代器實現的

? ? ? ? ? ? ? ? ? ?(最后一個有效數據的下一個位置的迭代器)

? ? ? ? ? ? (2)如果finish中的cur != last,那么就在finish迭代器中cur位置插入

? ? ? ? ? ? ? ? ? ? ?然后更新finish

? ? ? ? ? ? ? ? ? ? ?如果finish中的cur == last,那么就增加新的buffer,將新的buffer的地址交給

? ? ? ? ? ? ? ? ? ? ?中控數組,如果中控數組滿了,那么就有涉及到中控數組擴容的問題,假設

? ? ? ? ? ? ? ? ? ? ?中控數組沒有滿,那么將新的buffer的地址交給中控數組,在新的buffer數組中

? ? ? ? ? ? ? ? ? ? ?插入數據,更新finish

? ? ? ? ? ?(3)尾刪直接更新finish中的cur,--cur就可以,更新finish

? ? ? ? ? ? ? ? ? ? 如果--cur == first,那么就表明該buffer數組就空了,釋放掉該buffer數組,

? ? ? ? ? ? ? ? ? ? 更新finish以及中控數組? ? ? ? ? ??

? ? ? ? ? ?

? ?8.deque的頭插頭刪

? ? (1)deque的頭插頭刪是借助start迭代器來實現的

? ? ? ? ? ??(第一個有效數據位置的迭代器)

? ? (2)如果cur != first,那么直接在--cur的位置插入數據,更新start就可以了

? ? ? ? ? ? ?如果cur == first,那么表示該buffer數組頭部位置已經滿了無法在該buffer數組進行頭插

? ? ? ? ? ? ?那么就需要新增一個buffer數組,將buffer數組的起始地址交給中控數組,如果中控數組

? ? ? ? ? ? ?滿了那么就需要對中控數組進行擴容,此時假設中控數組沒有滿,那么緊接著在新增的

? ? ? ? ? ? ? buffer數組的最后一個位置進行插入,更新start迭代器

? ?(3)頭刪直接對start迭代器進行++cur,然后更新start迭代器

? ? ? ? ? ??如果++cur == first,表示此時該buffer數組為空,那么就需要釋放該buffer數組,在中控

? ? ? ? ? ? 數組中刪除該buffer數組的地址,然后更新start迭代器

? ? ? ? ?9.+=運算符重載,[]運算符重載

? ? ? ? ? (1)+=運算符重載依靠迭代器實現,[]運算符重載依靠+=實現? ??

? ? ? ? (2)n = n + (cur - first)

? ? ? ? ? ? ? ? ?是擔心第一個buffer頭部不是滿的,所以cur - first == 起始位置到第一個有效數據之間

? ? ? ? ? ? ? ? ?相差多少數據,以此來糾正n?

? ? ? ?(3)int x = n / 8 == 得到+=i之后buffer會跳轉到從現在buffer開始的第幾個buffer

? ? ? ?(4)int y = n % 8?== 得到+=i之后的buffer中下標為y位置的數據

? ? ? ?(5)node += x就可以直接得到最終的buffer

? ? ? ?(6)接下來就是更新迭代器,cur = first + y 就可以得到最終buffer中下標為y的元素的地址

六、deque的優缺點?

? ? ? ? ?1.優點

? ? ? ? ? (1)支持[]下標訪問,效率還不錯

? ? ? ? ? (2)cpu高速緩存命中率不錯

? ? ? ? ? (3)內存使用效率高

? ? ? ? ? (4)擴容也只是針對于中控數組的擴容代價低

? ? ? ? ? (5)浪費空間少,最多浪費buff - 1個空間

? ? ? ? ? (6)頭部,尾部是插入刪除效率高

? ? ? ? ? 2.缺點

? ? ? ? ? ?(1)中部位置插入刪除效率低,因為要挪動數據

? ? ? ? ? ?(2)迭代器遍歷效率低,雖然看著不錯,但是相比vector和list迭代器相差甚遠

? ? ? ? ? ?(3)只是為了最大程度的融合vector和list的優點,導致deque像是一個四不像

? ? ? ? ? ? ? ? ? ? ?[]效率不及vector,cpu高速緩存命中率也不如vector

? ? ? ? ? ? ? ? ? ? ?中間位置的插入刪除不如list

七、deque為什么作為stack和queue的默認適配容器

? ? ? ? ? ? ?1.stack只注重棧頂的插入刪除,而deque一端的插入刪除效率都很高

? ? ? ? ? ? ? ? 并且使用deque沒有數據的擴容和空間浪費

? ? ? ? ? ? ?2.queue注重隊尾入數據和隊頭出數據,而deque兩端的插入刪除效率都很高

? ? ? ? ? ? ? ? ?并且使用deque可以更高效的使用內存,就不會在內存中存儲很多指針

? ? ? ? ? ? ?3.stack和queue都是容器適配器,容器適配器是沒有迭代器的

? ? ? ? ? ? ? ? ?stack和queue是不可以進行遍歷的,所以deque迭代器的缺點也不會展現出來

? ? ? ? ? ? ? 4.所以deque才作為stack和queue的適配容器? ? ? ? ? ? ?

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

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

相關文章

[echart] Vue3中使用Echart時圖表不渲染

onMounted(() > {nextTick(() > {chartInstance echarts.init(document.getElementById(chart));chartInstance.setOption(option);}); });參考: Vue3中使用Echart時如何解決圖表不渲染或顯示空白的問題?

關于windows虛擬機無法聯網問題

看虛擬機相關的服務是否開啟 win R :services.msc確保這幾個服務都是可以的,沒有被禁止 如果寫的禁止,用下面的方法可以恢復服務在虛擬機里面打開虛擬網絡編輯器。還原默認配置即可,虛擬機網絡服務就開啟了。但也有一些加密軟件會…

將 YOLOv11 的 .pt 模型轉換為 YOLOv8 格式需要特定的處理流程 機器學習 計算機視覺cv

將 YOLOv11 的 .pt 模型轉換為 YOLOv8 格式需要特定的處理流程。以下是完整的轉換指南: 轉換原理 YOLOv11 和 YOLOv8 的核心差異在于: 模型結構:v11 使用 RepVGG 或 Swin Transformer 等新型骨干網絡輸出頭:v11 可能使用解耦頭或 …

BIFU幣富探索合規新路徑 助力用戶玩轉RWA

隨著區塊鏈技術的不斷發展,其在實體資產領域的應用正受到關注。通過技術手段實現資產信息的透明化、可追溯化,成為提升資產管理效率的新方向。所謂真實世界資產(RWA)的數字化管理,核心在于依托區塊鏈技術建立實體資產與…

05-netty基礎-ByteBuf數據結構

1 基本概念在網絡編程中,字節數據的處理是核心環節之一。無論是客戶端與服務器之間的通信,還是數據的編解碼操作,都離不開對字節緩沖區的高效管理。Java 原生的 ByteBuffer 雖然提供了基礎功能,但在靈活性、性能和易用性上存在諸多…

【Nginx反向代理】通過Nginx反向代理將多個后端server統一到同一個端口上的方法

文章目錄前言解決方案:使用 Nginx 做統一反向代理前言 在多人開發任務中,如果不同人負責不同的后端接口服務開發,那么就面臨著每個人的服務部署到不同的端口上,甚至有的人的服務部署在不同的服務器上。這時候前端如果想要調用后端…

Chrontel【CH7219A-BF】CH7219A USB-C和DP 1.4至HDMI 2.1協議轉換器,帶DSC解碼功能

G通用 D描述Chrontel 的 CH7219A 是一種低成本、低功耗的半導體器件 通過 USB Type-C 將 DisplayPort 信號轉換為 HDMI 2.0 連接器。這款基于 USB Type-C 的創新型 DisplayPort 接收器具有高 高性能DSC解碼器,集成HDMI 2.0發射器 專為 USB Type-C 轉 HDMI 2.0 轉換器…

瘋狂星期四文案網第26天運營日記

網站運營第26天,點擊觀站: 瘋狂星期四 crazy-thursday.com 全網最全的瘋狂星期四文案網站 運營報告 今日訪問量 30多ip,斷崖式下跌,習慣了。。 今日搜索引擎收錄情況 必應52個頁面,比昨日12 百度仍然只有首頁 谷歌收錄正常 …

元策聯盈:深耕金融領域,賦能行業發展?

元策聯盈:深耕金融領域,賦能行業發展元策聯盈在金融行業的深耕細作,不僅體現在為客戶提供優質服務上,更在于其對行業發展的積極推動和自身的不斷創新突破。行業貢獻與社會責任元策聯盈始終將社會責任融入企業發展的血脈之中。在助…

力扣-字母異位詞

這里我也是沒有太懂,只懂個大概,先統計p和當前窗口的字符,后主要在窗口大小固定為 p.length(),在 s 上滑動做文章,在s里找到p的長度大小,最后直接比較兩個頻率數組來判斷異位詞定長窗口做法class Solution …

華為數通HCIP

華為認證數通方向的 HCIP(華為認證 ICT 高級工程師)考試難度適中,既不像 HCIA(初級)那樣側重基礎概念,也不像 HCIE(專家級)需要復雜的綜合實驗和面試,但仍需要系統的知識…

在SQL SERVER 中,用SSMS 實現存儲過程的每日自動調用

在 SQL Server Management Studio (SSMS) 中實現每日自動調用存儲過程,需通過 ??SQL Server 代理作業??配置定時任務。以下是詳細操作步驟:🔧 一、啟用 SQL Server 代理服務(前置條件)??啟動服務??&#xff1a…

賽博算命之八字測算事業運勢的Java實現(四柱、五行、十神、流年、格局詳細測算)

個人主頁-愛因斯晨 文章專欄-賽博算命 最近學習人工智能時遇到一個好用的網站分享給大家: 人工智能學習 文末有投票,評論區有紅包哦! 前言 在前段時間更新了賽博算命系列,出乎我的意料反響很好。也受到廣大網友的贊賞&#xff0…

2025 騰訊廣告算法大賽 Baseline 項目解析

項目概述 2025 騰訊廣告算法大賽 Baseline,一個簡單的序列推薦系統,主要用于建模用戶和物品的交互序列,并利用多模態特征(文本、圖像等 embedding)來提升推薦效果。 核心文件功能 1. main.py - 主訓練腳本 負責模型訓練…

數據結構(11)棧和隊列算法題 OVA

一、概念與結構 循環隊列是一種特殊的隊列,首尾相連成環,也叫環形隊列。環形隊列具有以下三個特點: (1)隊頭刪除數據,隊尾插入數據。 (2)給定固定的空間,使用過程中不…

九聯UNT403HS_海思MV320處理器_安卓9-優盤強刷刷機包

九聯UNT403HS_海思MV320處理器_安卓9-優盤強刷刷機包前言:九聯UNT403HS,海思MV320芯片,已知有2種內存型號,分別是28G和216G。已知河南融合版本是28G,廣東版好像既有28G又有216G。理論上固件沒有本質區分,能…

Xilinx高性能低延時PCIe-DMA控制器IP,SGDMA,QDMA,RDMA,CDMA,V4L2驅動,視頻采集、AD采集

Multi-Channel High Performance PCIe QDMA&RDMA IP介紹基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem實現了使用DMA地址隊列的獨立多通道、高性能Continous(CDMA)或Scather Gather DMA(SGDMA&#xf…

10、Docker Compose 安裝 MySQL

🐳 使用 Docker Compose 安裝 MySQL(含配置詳解與常見問題)標簽:#DockerCompose #MySQL #數據庫部署 #后端開發 #運維入門 #配置詳解 適合讀者:開發者、DevOps、新手運維人員📌 一、前言 在日常開發與部署中…

Dynamic A(D)算法深度剖析:動態環境下的路徑規劃革新

Dynamic A*(D*)算法深度剖析:動態環境下的路徑規劃革新 文章目錄 Dynamic A*(D*)算法深度剖析:動態環境下的路徑規劃革新 1. 引言:動態路徑規劃的核心挑戰與解決方案 1.1 動態環境的本質特征 1.2 D * 算法的誕生與核心價值 2. D * 算法核心原理深度解析 2.1 反向搜索機制…

前端框架Vue3(四)——組件通信及其他API

組件通信組件關系傳遞方式父傳子1. props2. v-model3. $refs4. 默認插槽、具名插槽子傳父1.props2.自定義事件3.v-model4.parent5.作用域插槽祖傳孫、孫傳祖1.$attrs2.provide、inject兄弟間、任意組件間1.mitt2.pinia【props】 概述:props是使用頻率最高的一種通信…