演算法設計庫 STL

2021-10-10 01:16:51 字數 1074 閱讀 5692

stl標準模板類庫,分為三類:

container(容器),algorithm(演算法),iterator(迭代器)

容器用於存放資料物件(元素),演算法用於操作容器中的資料物件,演算法和容器之間的中介就是迭代器。

容器類別

資料結構

說明實現標頭檔案

順序容器vector(向量)

連續儲存元素

vector

list(鍊錶)

由結點組成的雙向鍊錶,每個結點包含乙個元素

list

deque(雙端鍊錶)

連續儲存的指向不同元素的指標所組成的元素

deque

關聯容器set(集合)/ multimap(多重對映)

由結點組成的紅黑樹,每個結點都包含乙個元素。在set中沒有相同關鍵字的元素,而在multiset中允許有。

setmap(對映)/ multimap(多重對映)

由(key,value)對組成的集合。在map中沒有相同關鍵字的元素,而在multimap中允許有。

map介面卡容器stack(棧)

後進先出的序列

stack

queue(佇列)

先進先出的序列

queue

priority_queue(優先佇列)

元素的出隊次序由某種謂詞決定的一種佇列

queue

雜湊容器hash_map(hash_multimap,hash_set,

hash_multiset)

hash表

hash_map

unordered_map

無須雜湊表,替代hash_map

unordered_map

c++中引入命名空間的概念,在不同命名空間中可以存在相同名字的識別符號。

stl的 sort() 以及其識別符號 都封裝在命名空間 std 中。

在使用stl時必須寫標頭檔案:using namespace std;

STL標準庫演算法

目錄演算法是function template.演算法看不見containers,對其一無所知,所以它所需要的一切資訊都必須從iterators取得,而iterators必須能夠回答algorithm的所有提問,才能搭配algorithm的所有操作。演算法模板的形式如下 templatealgori...

STL庫全排列演算法next permutation

1.next permutation 函式原型 templatebool next permutation bidirectionaliterator first,bidirectionaliterator last templatebool next permutation bidirection...

STL標準庫中的演算法函式

stl標準庫中的演算法函式 非修改性序列操作 12個 型別 函式名 說明迴圈 for each 對序列中的每個元素執行某操作。查詢find 在序列中找出某個值的第一次出現的位置。find if 在序列中找出符合某謂詞的第乙個元素。find end 在序列中找出一子串行的最後一次出現的位置。find ...