国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

deque(簡單介紹一下)

這篇具有很好參考價值的文章主要介紹了deque(簡單介紹一下)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

deque的基本情況:

deque(簡單介紹一下)

簡單的來說deque是一個雙頭隊列。且兩邊的尺寸可以動態(tài)收縮或者擴(kuò)張。

其底層實現(xiàn)相當(dāng)復(fù)雜,而且效率并不高。大多數(shù)時候都不會使用。

deque誕生的原因是vector和list的優(yōu)缺點不可分割。

正好復(fù)習(xí)一下vector和list的優(yōu)缺點。

vector的優(yōu)點:支持隨機訪問;尾插,尾刪很方便;高速緩存命中率高。

vector的缺點:不支持頭插或者中間插入;擴(kuò)容具備一定的性能消耗,以及空間浪費。

list的優(yōu)點:任意位置插入刪除數(shù)據(jù)只需要O(1)復(fù)雜度;按需申請釋放空間,沒有損耗。

list的缺點:不支持隨機訪問,高速緩存命中率低。

對比兩者的優(yōu)缺點,發(fā)現(xiàn)他們的缺點正是為了他們的優(yōu)點誕生的,兩者不可分割。deque就是針對兩者的缺點設(shè)計出來的,所以性能被犧牲了。

deque的底層大概是這樣的結(jié)構(gòu):

deque(簡單介紹一下)

如何滿足隨機訪問?

要訪問的下標(biāo),減去第一個數(shù)組具有的元素個數(shù),然后/10,就能知道在第幾個空間了。%10就能知道在第幾個位置。

deque的優(yōu)點:

1.頭插和尾插效率不錯

2.支持隨機訪問

3.高速緩存命中率高

4.擴(kuò)容代價小

deque的缺點

1.中部插入刪除效率不行,(要么需要挪動數(shù)據(jù),要么支持每個開辟的空間大小不一定相同,這樣的話,中控數(shù)組還要記錄每個空間有多少個元素,因為要支持隨機訪問)

2.雖然支持隨機訪問,但效率相對于vector而言還有差距。頻繁隨機訪問時要小心。

以排序為例(測試在release下):

用deque存數(shù)據(jù),進(jìn)行排序,和vector存數(shù)據(jù)(和deque中的內(nèi)容一樣),進(jìn)行排序。10000以內(nèi)沒什么區(qū)別,之后的每個數(shù)量級,deque花費的時間都是vector的2倍左右。

如果將deque的數(shù)據(jù)拷貝進(jìn)vector,進(jìn)行排序,排序完再將數(shù)據(jù)拷貝給deque(用assign拷貝回deque),和直接對vector中的數(shù)據(jù)排序所花費的時間,進(jìn)行比較,deque花費的時間大概是vector的1.4倍左右。

所以deque適合在大量頭尾存儲刪除數(shù)據(jù)的時候使用,比如stack和queue,棧和隊列使用deque比使用vector/list更合適。文章來源地址http://www.zghlxwxcb.cn/news/detail-473510.html

到了這里,關(guān)于deque(簡單介紹一下)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 簡單介紹一下YOLO算法發(fā)展歷程

    簡單介紹一下YOLO算法發(fā)展歷程

    前言: Hello大家好,我是小哥談。 隨著人工智能技術(shù)的發(fā)展,YOLO算法已經(jīng)成為了一個熱門話題。到目前為止,YOLO算法已經(jīng)經(jīng)歷了多個版本的發(fā)展迭代,許多研究者對YOLO算法進(jìn)行了改進(jìn)和創(chuàng)新。為了讓大家理解的更透徹,本文就由淺入深的向大家介紹YOLOv1到Y(jié)OLOv5的發(fā)展歷程,

    2024年02月05日
    瀏覽(53)
  • 簡單介紹一下centos上有什么工具可以優(yōu)雅的管理開機啟動項

    在CentOS上,你可以使用以下工具來優(yōu)雅地管理開機啟動項: systemctl:systemctl 是 systemd 系統(tǒng)和服務(wù)管理器的主要命令。它提供了一種優(yōu)雅的方式來管理啟動項。你可以使用 systemctl 命令來啟用、禁用、查看和管理系統(tǒng)服務(wù)。例如,要啟用一個服務(wù),可以使用 systemctl enable servi

    2024年02月11日
    瀏覽(29)
  • Linux命令查看CPU、內(nèi)存、IO使用情況簡單介紹

    Linux命令查看CPU、內(nèi)存、IO使用情況簡單介紹

    物理cpu就是計算機上實際安裝的cpu,物理cpu數(shù)就是主板上實際插入的CPU數(shù)量。 在Linux上查看/proc/cpuinfo,其中的physical id就是每個物理cpu的id,有幾個不同的physical id就有幾個物理cpu。 每顆物理CPU可以有1個或者多個物理內(nèi)核,通常每顆物理CPU的內(nèi)核數(shù)都是固定的, 單核CPU就是有

    2024年02月10日
    瀏覽(23)
  • 請簡單介紹一下Shiro框架是什么?Shiro在Java安全領(lǐng)域的主要作用是什么?Shiro主要提供了哪些安全功能

    請簡單介紹一下Shiro框架是什么?Shiro在Java安全領(lǐng)域的主要作用是什么?Shiro主要提供了哪些安全功能

    會話管理(Session Management):Shiro能夠管理用戶的會話狀態(tài),包括會話的創(chuàng)建、維護(hù)和銷毀。它支持多種會話存儲方式(如內(nèi)存、數(shù)據(jù)庫等),并提供了會話超時、會話失效等機制,以確保會話的安全性。 跨平臺集成:Shiro不僅適用于Web應(yīng)用程序,還可以輕松集成到桌面應(yīng)用

    2024年04月13日
    瀏覽(29)
  • 請簡單介紹一下Shiro框架是什么?Shiro在Java安全領(lǐng)域的主要作用是什么?Shiro主要提供了哪些安全功能?

    請簡單介紹一下Shiro框架是什么? Shiro框架是一個強大且靈活的開源安全框架,為Java應(yīng)用程序提供了全面的安全解決方案。它主要用于身份驗證、授權(quán)、加密和會話管理等功能,可以輕松地集成到任何Java Web應(yīng)用程序中,并提供了易于理解和使用的API,使開發(fā)人員能夠快速實

    2024年04月11日
    瀏覽(24)
  • 簡單介紹數(shù)據(jù)結(jié)構(gòu)的基本概念

    簡單介紹數(shù)據(jù)結(jié)構(gòu)的基本概念

    數(shù)據(jù) 數(shù)據(jù)(Data)是 客觀事物的符號表示 ,是 所有能輸入到計算機中并被計算機程序處理的符號的總稱 。例如:整數(shù)、字符串、圖形、圖像、聲音和動畫等 數(shù)據(jù)元素 數(shù)據(jù)元素(Data Element)是 數(shù)據(jù)的基本單位 ,有時也可被稱為元素、記錄等。 在計算機中通常作為一個整體

    2024年02月19日
    瀏覽(21)
  • kafka簡單搭建和基本使用介紹

    kafka簡單搭建和基本使用介紹

    使用場景 處理大規(guī)模的消息,大數(shù)據(jù),事件采集,日志收集等,不過使用延遲消息比較麻煩對比其他的消息隊列的話。高吞吐量、低延遲:kafka每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒,每個topic可以分多個partition。每個消費組?對分區(qū)進(jìn)行消費 - 可擴(kuò)展性:kafka集群支

    2024年02月01日
    瀏覽(34)
  • C++ vector模板和deque的簡單應(yīng)用

    目錄 ??vector模板和deque的簡單介紹: ??vector和deque的主要不同之處: ??今天我們用vector模板和deque模板實現(xiàn)以下簡單的功能: 代碼實現(xiàn): ??講解: vector 和 deque 都是C++ STL(標(biāo)準(zhǔn)模板庫)中的容器模板,用于存儲和管理數(shù)據(jù)。它們都提供了可動態(tài)調(diào)整大小的數(shù)組,允許在任

    2024年02月07日
    瀏覽(26)
  • 【Vue】Vue的簡單介紹與基本使用

    【Vue】Vue的簡單介紹與基本使用

    Vue是一款用于 構(gòu)建用戶界面 的 JavaScript 框架。 它基于標(biāo)準(zhǔn) HTML、CSS 和 JavaScript 構(gòu)建,并提供了一套 聲明式的、組件化 的編程模型,幫助你高效地開發(fā)用戶界面。 無論是簡單還是復(fù)雜的界面,Vue 都可以勝任。 傳統(tǒng)方式 vue方式 使用 vue 構(gòu)建用戶界面,解決了jQuery + 模板引擎

    2024年02月04日
    瀏覽(14)
  • stack 、 queue的語法使用及底層實現(xiàn)以及deque的介紹【C++】

    stack 、 queue的語法使用及底層實現(xiàn)以及deque的介紹【C++】

    stack是一種容器適配器,具有后進(jìn)先出,只能從容器的一端進(jìn)行元素的插入與提取操作 隊列是一種容器適配器,具有先進(jìn)先出,只能從容器的一端插入元素,另一端提取元素 stack和queue在STL中并沒有將其劃分在容器的行列,而是稱為容器適配器 因為stack和queue對其他容器的接口

    2024年02月12日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包