C STL專題總結

2021-09-12 07:38:13 字數 2811 閱讀 9411

stl是acm第乙個學習的知識,總體來說與優秀的同學有著特別的的差距,自己也會繼續加油,繼續縮小與他們的差距,不會懈怠!

下列是stl專題裡所有出現的標頭檔案及相應的函式。

棧(stack)

標頭檔案:#include

stackstack_name;

如:stack s;

操作:empty() – 返回bool型,表示棧內是否為空 (s.empty() )

size() – 返回棧內元素個數 (s.size() )

top() – 返回棧頂元素值 (s.top() )

pop() – 移除棧頂元素(s.pop(); )

push(data_type a) – 向棧壓入乙個元素 a(s.push(a); )

佇列(queue)

標頭檔案:#include

定義:queue queue_name;

如:queue q;

操作:empty() – 返回bool型,表示queue是否為空 (q.empty() )

size() – 返回queue內元素個數 (q.size() )

front() – 返回queue內的下乙個元素 (q.front() )

back() – 返回queue內的最後乙個元素(q.back() )

pop() – 移除queue中的乙個元素(q.pop(); )

push(data_type a) – 將乙個元素a置入queue中(q.push(a); )

優先佇列(priority_queue)

標頭檔案: #include

定義:priority_queue priority_queue_name;

如:priority_queue q;//預設是大頂堆

操作:q.push(elem) 將元素elem置入優先佇列

q.top() 返回優先佇列的下乙個元素

q.pop() 移除乙個元素

q.size() 返回佇列中元素的個數

q.empty() 返回優先佇列是否為空

動態陣列(vector)

標頭檔案: #include

定義:vector vector_name;

如:vector v;

操作:empty() – 返回bool型,表示vector是否為空 (v.empty() )

size() – 返回vector內元素個數 (v.size() )

push_back(data_type a) 將元素a插入最尾端

pop_back() 將最尾端元素刪除

v[i] 類似陣列取第i個位置的元素(v[0] )

演算法(algorithm)

sort(begin, end); 預設從小到大排序

sort(begin, end, cmp);

bool next_permutation(begin, end); 改變區間內元素的順序,產生下乙個排列。

bool prev_permutation(begin, end); 產生前乙個排列。

end為最後乙個元素的下乙個位置。

upper_bound(begin, end, value); 返回》value的元素的第乙個位置。

lower_bound(begin, end, value); 返回》=value的元素的第乙個位置。

set標頭檔案: #include

定義:set set_name;

如:set s;//預設由小到大排序

操作:s.insert(elem) – 安插乙個elem副本,返回新元素位置。

s.erase(elem) – 移除與elem元素相等的所有元素,返回被移除 的元素個數。

s.erase(pos) – 移除迭代器pos所指位置上的元素,無返回值。

s.clear() – 移除全部元素,將整個容器清空。

迭代器舉例:

multiset :: iterator pos;

for(pos = s.begin(); pos != s.end(); pos++)

s.size() – 返回容器大小。

s.empty() – 返回容器是否為空。

s.count(elem) – 返回元素值為elem的元素的個數。

s.lower_bound(elem) – 返回 元素值》= elem的第乙個元素位置。

s.upper_bound(elem) – 返回元素值 > elem的第乙個元素的位置。

以上位置均為乙個迭代器。

s.begin() – 返回乙個雙向迭代器,指向第乙個元素。

s.end() – 返回乙個雙向迭代器,指向最後乙個元素的下乙個位置。

map標頭檔案: #include

定義:map map_name;

如:map m;//預設按string由小到大排序

操作:m.size() 返回容器大小

m.empty() 返回容器是否為空

m.count(key) 返回鍵值等於key的元素的個數

m.lower_bound(key) 返回鍵值等於key的元素的第乙個可安插的位置

m.upper_bound(key) 返回鍵值等於key的元素的最後乙個可安 插的位置

m.insert(elem) 插入乙個元素elem

a)運用value_type插入

mapm;

m.insert(map:: value_type (「robin」, 22.3));

b) 運用pair<>

m.insert(pair(「robin」, 22.3));

c) 運用make_pair()

m.insert(make_pair(「robin」, 22.3));

C STL專題的諸多函式

一 標頭檔案 include 這個頭函式為演算法標頭檔案,下面介紹演算法中的幾個基本函式 sort函式 這個函式是乙個排序函式,方法用於對陣列的元素進行排序,並返回陣列。主要用法如下 sort begin,end,排序方式 如果未填寫排序方式,預設從小到大排序。倘若想要從大到小排序 sort beg...

C STL使用總結

vector動態陣列 back 返回陣列最後乙個元素。宣告 vector res m,vector n,0 上面的一行宣告了乙個二維陣列m行n列的二維陣列,並且初始化為0 有乙個交換的函式reserve res.begin res.end 將res行交換 第一行變最後 第二行變倒數第二 stack堆...

C STL容器總結

三大類容器 1.序列式容器 vector deque list vector是一種動態陣列,在記憶體中具有連續的儲存空間,支援快速隨機訪問。由於具有連續的儲存空間,所以在插入和刪除操作方面,效率比較慢。vector有多個建構函式,預設的建構函式是構造乙個初始長度為0的記憶體空間,且分配的記憶體空間是...