日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++STL理论基础

發(fā)布時間:2025/3/15 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++STL理论基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C++STL理論基礎(chǔ)

開發(fā)工具與關(guān)鍵技術(shù):C++、VisualStudio 作者:何任賢 撰寫時間:2019年08月16日 STL(StandardTemplateLibrary,標(biāo)準(zhǔn)模板庫)是惠普實驗室開發(fā)的一系列軟件 的統(tǒng)稱。

現(xiàn)然主要出現(xiàn)在 C++中,但在被引入 C++之前該技術(shù)就已經(jīng)存在了很長 的一段時間。 STL
的從廣義上講分為三類:algorithm(算法)、container(容器)和 iterator (迭代器),
容器和算法通過迭代器可以進(jìn)行無縫地連接。幾乎所有的代碼都采 用了模板類和模板函數(shù)
的方式,這相比于傳統(tǒng)的由函數(shù)和類組成的庫來說提供了 更好的代碼重用機會。在 C++標(biāo)
準(zhǔn)中,STL 被組織為下面的 13 個頭文 件: 、、、
、、、、、 、、、
和。


上圖是指算法、迭代器和容器的關(guān)系

STL的六大組件:

  • 容器(Container) //相當(dāng)于鏈表
  • 算法(Algorithm)
  • 迭代器(Iterator) //相當(dāng)于指針
  • 仿函數(shù)(Functionobject)
  • 適配器(Adaptor)
  • 空間配制器(allocator)
  • 那么使用STL有什么好處:

  • STL是C++的一部分,因此不用額外安裝什么,它被內(nèi)建在你的編譯器之內(nèi)。
  • STL的一個重要特點是數(shù)據(jù)結(jié)構(gòu)和算法的分離。盡管這是個簡單的概 念,但是這種分
    離確實使得 STL 變得非常通用。 例如,在 STL的 vector 容器中,可以放入元素、基
    礎(chǔ)數(shù)據(jù)類型變量、元素 的地址; STL的sort()函數(shù)可以用來操作 vector,list 等容器。
  • 我們可以不用思考 STL 具體的實現(xiàn)過程,只要能夠熟練使用 STL 就 OK 了。這樣我
    們就可以把精力放在程序開發(fā)的別的方面。
  • STL 具有高可重用性,高性能,高移植性,跨平臺的優(yōu)點。
    5.高可重用性:STL 中大多數(shù)的代碼都采用了模板類和模版函數(shù)的方式實現(xiàn)。
    6.高性能:如 map 可以高效地從十萬條記錄里面查找出指定的記錄,因為 map 是采用
    紅黑樹的變體實現(xiàn)的。(紅黑樹是平橫二叉樹的一種)
    7.跨平臺:如用 windows的 Visual Studio編寫的代碼可以在Mac OS 的XCode 上直接
    編譯。
  • 關(guān)于STL三類概述

  • 容器的概念:用來管理一組元素,容器分為兩類分別是序列式容器(Sequence containers)和關(guān)聯(lián)式容器(Associated containers)
  • 序列式容器的特點:
    每個元素都有固定位置--取決于插入時機和地點,和元素值無關(guān)。
    序列式容器有三種分別是vector 、 deque 、 list
    實現(xiàn)頭文件的頭文件分別是、、

    關(guān)聯(lián)式容器的特點:
    元素位置取決于特定的排序準(zhǔn)則,和插入順序無關(guān)
    序列式容器有四種分別是set 、 multiset 、 map 、 multimap
    實現(xiàn)頭文件的頭文件分別是 、、、

  • 迭代器的概念:迭代器在STL中用來將算法和容器聯(lián)系起來,起著一種黏和劑的作用,每一個容器都定義了其本身所專有的迭代器,用以存取容器中的元素。
    迭代器部分主要由頭文件, 和 組成。
    是一個很小的頭文件,它包括了貫穿使用在 STL 中的幾個模板的聲明。
    主要提供了迭代器使用的許多方法。
    主要部分是模板類 allocator,它負(fù)責(zé)產(chǎn)生所有容器中的默認(rèn)分配器,并
    且為容器中的元素分配存儲空間,同時也為某些算法執(zhí)行期間產(chǎn)生的臨時對象提供
    機制。

  • 算法:STL 提供了大約 100 個實現(xiàn)算法的模版函數(shù),只要熟悉了 STL 之后,許多代
    碼可以被大大的化簡,只需要通過調(diào)用一兩個算法模板,就可以完成所需要的功能并
    大大地提升效率。
    算法部分主要由頭文件,和組成,
    是所有 STL 頭文件中最大的一個,它是由一大堆模版函數(shù)組成的。

  • 總結(jié)

    以上是生活随笔為你收集整理的C++STL理论基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。