C++ STL(1)

C++ STL(1)

from my csdn blog

C++標(biāo)準(zhǔn)模板庫(kù)

  • 容器

    • C++標(biāo)準(zhǔn)模板庫(kù)提供了10種容器
    • 基于數(shù)據(jù)結(jié)構(gòu)
      • 數(shù)據(jù)的邏輯結(jié)構(gòu)
        • 線(xiàn)性
        • 非線(xiàn)性
      • 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
        • 順序存儲(chǔ):把數(shù)據(jù)存儲(chǔ)與一段連續(xù)地址空間的內(nèi)存中
        • 鏈?zhǔn)酱鎯?chǔ):使用節(jié)點(diǎn)(數(shù)據(jù)域+指針域),通過(guò)指針關(guān)聯(lián)銜接。在存儲(chǔ)中不一定相鄰
      • 數(shù)據(jù)的操作
        • 操作定義于數(shù)據(jù)的邏輯結(jié)構(gòu)上,具體實(shí)現(xiàn)與存儲(chǔ)結(jié)構(gòu)相關(guān)。
        • 常用操作:訪(fǎng)問(wèn)元素、統(tǒng)計(jì)個(gè)數(shù)、更新、插入、刪除、查找、排序
    • 線(xiàn)性表
      • 棧(stack)
      • 隊(duì)列(queue)
      • 優(yōu)先隊(duì)列(priority queue)
        • 優(yōu)先級(jí)隊(duì)列是隊(duì)列的一種形式,它是對(duì)每次插入隊(duì)列后的數(shù)據(jù)按某種規(guī)則進(jìn)行排序,每次刪除的均是優(yōu)先級(jí)最高的數(shù)據(jù)元素。
    • 樹(shù):有層次關(guān)系
      • 二叉樹(shù)
      • 無(wú)層次關(guān)系,每個(gè)元素有多個(gè)前驅(qū)和后繼
    • 數(shù)組、矩陣
  • C++容器

    • 在數(shù)據(jù)存儲(chǔ)上,有一種對(duì)象類(lèi)型,它可以持有其它對(duì)象或指向其它對(duì)像的指針,這種對(duì)象類(lèi)型就叫做容器。
    • 用于保存其他對(duì)象的對(duì)象,并且這種對(duì)象還包含一系列處理其他對(duì)象的方法。
    • 可容器是隨著面向?qū)ο笳Z(yǔ)言的誕生而提出的,容器類(lèi)在面向?qū)ο笳Z(yǔ)言中特別重要,在現(xiàn)在幾乎所有的面向?qū)ο蟮恼Z(yǔ)言中也都伴隨著一個(gè)容器集。以自行擴(kuò)展(自行申請(qǐng)釋放內(nèi)存,并用最優(yōu)的算法來(lái)執(zhí)行命令)
  • 通用容器

    • 順序性容器
      • 是一種各元素之間有順序關(guān)系的線(xiàn)性表,是一種線(xiàn)性結(jié)構(gòu)的可序群集。順序性容器中的每個(gè)元素均有固定的位置,除非用刪除或插入的操作改變這個(gè)位置。這個(gè)位置和元素本身無(wú)關(guān),而和操作的時(shí)間和地點(diǎn)有關(guān),順序性容器不會(huì)根據(jù)元素的特點(diǎn)排序而是直接保存了元素操作時(shí)的邏輯順序。比如我們一次性對(duì)一個(gè)順序性容器追加三個(gè)元素,這三個(gè)元素在容器中的相對(duì)位置和追加時(shí)的邏輯次序是一致的。
    • 關(guān)聯(lián)式容器
      • 和順序性容器不一樣,關(guān)聯(lián)式容器是非線(xiàn)性的樹(shù)結(jié)構(gòu),更準(zhǔn)確的說(shuō)是二叉樹(shù)結(jié)構(gòu)。各元素之間沒(méi)有嚴(yán)格的物理上的順序關(guān)系,也就是說(shuō)元素在容器中并沒(méi)有保存元素置入容器時(shí)的邏輯順序。但是關(guān)聯(lián)式容器提供了另一種根據(jù)元素特點(diǎn)排序的功能,這樣迭代器就能根據(jù)元素的特點(diǎn)“順序地”獲取元素。
      • 關(guān)聯(lián)式容器另一個(gè)顯著的特點(diǎn)是它是以鍵值的方式來(lái)保存數(shù)據(jù),就是說(shuō)它能把關(guān)鍵字和值關(guān)聯(lián)起來(lái)保存,而順序性容器只能保存一種(可以認(rèn)為它只保存關(guān)鍵字,也可以認(rèn)為它只保存值)。這在下面具體的容器類(lèi)中可以說(shuō)明這一點(diǎn)。
    • 容器適配器
      • 容器適配器是一個(gè)比較抽象的概念,C++的解釋是:適配器是使一事物的行為類(lèi)似于另一事物的行為的一種機(jī)制。
      • 容器適配器是讓一種已存在的容器類(lèi)型采用另一種不同的抽象類(lèi)型的工作方式來(lái)實(shí)現(xiàn)的一種機(jī)制。其實(shí)僅是發(fā)生了接口轉(zhuǎn)換。那么你可以把它理解為容器的容器,它實(shí)質(zhì)還是一個(gè)容器,只是他不依賴(lài)于具體的標(biāo)準(zhǔn)容器類(lèi)型,可以理解是容器的模版。或者把它理解為容器的接口,而適配器具體采用哪種容器類(lèi)型去實(shí)現(xiàn),在定義適配器的時(shí)候可以由你決定。
  • 標(biāo)準(zhǔn)容器類(lèi)

    • 順序性容器
      • vector
        • 從后面快速的插入與刪除,直接訪(fǎng)問(wèn)任何元素
      • deque
        • 從前面或后面快速的插入與刪除,直接訪(fǎng)問(wèn)任何元素
      • list
        • 雙鏈表,從任何地方快速插入與刪除
    • 關(guān)聯(lián)容器
      • set
        • 快速查找,不允許重復(fù)值
      • multiset
        • 快速查找,允許重復(fù)值
      • map
        • 一對(duì)多映射,基于關(guān)鍵字快速查找,不允許重復(fù)值
      • multimap
        • 一對(duì)多映射,基于關(guān)鍵字快速查找,允許重復(fù)值
    • 容器適配器
      • stack
        • 后進(jìn)先出
      • queue
        • 先進(jìn)先出
      • priority_queue
        • 最高優(yōu)先級(jí)元素總是第一個(gè)出列
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,765評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,366評(píng)論 11 349
  • 標(biāo)簽(空格分隔): STL 運(yùn)用STL,可以充分利用該庫(kù)的設(shè)計(jì),讓我為簡(jiǎn)單而直接的問(wèn)題設(shè)計(jì)出簡(jiǎn)單而直接的解決方案,...
    認(rèn)真學(xué)計(jì)算機(jī)閱讀 1,506評(píng)論 0 10
  • C++ 標(biāo)準(zhǔn)模板庫(kù)(STL) 作者:AceTan,轉(zhuǎn)載請(qǐng)標(biāo)明出處! 0x00 何為STL## STL(Standa...
    AceTan閱讀 4,987評(píng)論 3 44
  • 1、后海散步打卡,一邊散步一邊警醒于光,火呼吸、142呼吸,清理提升能量,感謝嫻導(dǎo)早課的陪伴!今天的功課: 2、警...
    張艾雯閱讀 239評(píng)論 0 0