C STL簡單介紹

2021-07-23 16:54:19 字數 1617 閱讀 1087

stl(standard template library,標準模板庫)是c++對泛型程式設計思想的實現,最早是惠普實驗室開發的。

在被引入c++之前該技術就已經存在了非常長的一段時間。後來stl成為ansi/iso c++標準的一部分。各個

c++廠商也有各自對應的模板庫,這些庫效率可能非常高,但可移植性不一定好。

stl廣義上分為三類:algorithm(演算法)、container(容器)和iterator(迭代器),差點兒全部的**都採

用了模板類和模板函式的方式,這相比於傳統的由函式和類組成的庫來說提供了更好的**重用機會。

在c++標準中,stl被組織為以下的13個頭檔案:、、、、、

、、、、、、和。

1) 演算法(algorithm)

stl提供了大約100個實現演算法的模版函式,演算法部分主要由標頭檔案,和組成。

是全部stl標頭檔案裡最大的乙個,它是由一大堆模板函式組成的,當中經常使用到的功能範圍涉及到比較、

交換、查詢、遍歷操作、複製、改動、移除、反轉、排序、合併等等。

體積非常小,僅僅包含一些簡單數**算的模板函式。

中則定義了一些模板類,用以宣告函式物件。

2) 容器(container)(又稱集合collection)

在實際的開發過程中,資料結構本身的重要性不會遜於操作於資料結構的演算法的重要性,當程式中存在著對時間要

求非常高的部分時,資料結構的選擇就顯得更加重要。

通過設定一些模版類,stl容器對最經常使用的資料結構提供了支援,這些模板的引數同意指定容器中元素的資料類

型,能夠將很多反覆而乏味的工作簡化。

例如以下表:

資料結構

實現標頭檔案

向量(vector)

順序性容器

列表(list)

順序性容器

雙佇列(deque)

順序性容器

集合(set)

關聯容器

多重集合(multiset)

關聯容器

棧(stack)

容器介面卡

佇列(queue)

容器介面卡

優先佇列(priority_queue)

容器介面卡

對映(map)

關聯容器

多重對映(multimap)

關聯容器

3)迭代器(iterator)

迭代器是一種同意程式猿檢查容器內元素,並實現元素遍歷的資料型別。c++標準庫為每一種標準容器定義了一種迭代器型別。迭代器型別提供了比下標操作更一般化的方法:全部的標準庫容器都定義了對應的迭代器型別,而僅僅有少數的容器(比方陣列)支援下標操作。由於迭代器對全部的容器都適用,現代c++程式更傾向於使用迭代器而不是下標操作訪問容器元素。

迭代器從作用上來說是stl最主要的部分,迭代器在stl中用來將演算法和容器聯絡起來,起著一種黏和劑的作用。差點兒stl提供的全部演算法都是通過迭代器訪問元素序列進行工作的,每個容器都定義了其本身所專有的迭代器,用以訪問容器中的元素。

迭代器部分主要由標頭檔案,和組成。是乙個非常小的標頭檔案,它包含了貫穿使用在stl中的幾個模板的宣告,中提供了迭代器使用的很多方法, 為容器中的元素分配儲存空間,同一時候也為某些演算法執行期間產生的暫時物件提供機制,中的主要部分是模板類allocator,它負責產生全部容器中的預設分配器。

C STL簡單介紹

5.容器演算法迭代器初識 stl大體分為六大元件,分別為 容器,演算法,迭代器,仿函式,介面卡 配接器 空間配置器 容器 各種資料結構 如vector,list,deque,set,map等,用來存放資料 演算法 各種常用的演算法 如sort,copy,for each等 迭代器 扮演了容器與演算法...

C STL 的簡單介紹

本篇文章內容基本 於c語言中文網,根據其內容進行簡化 留作自我複習使用 c 的標準模板庫 standardtemplatelibrary 是泛型程式設計最成功應用的例項 stl是一些常用資料結構和演算法的模板的集合 順序容器關聯容器容器介面卡 也簡稱容器 舉例 棧stack 佇列queue 優先佇列...

C STL簡單應用

include include include 容器 陣列的增強版 include 去重,排序 include 自動建立key value對應 include 棧 先進後出 include 佇列 先進先出 using namespace std int main vector v a,a 3 不能直...