程式設計常用的C 模板庫(STL)

2021-07-09 12:37:42 字數 2717 閱讀 8121

#include

stackname;

bool empty();

void pop();

void push(const type&);

type & top();

size_type size();

佇列

#include

queuename;

bool empty();

void pop();

void push(const type&);

type & back();

type & front();

size_type size();

優先佇列: 出隊時,將當前佇列中最大的元素出隊 可以通過過載《來重新定義最大值的含義

#include

priority_queuename;

bool empty();

void pop();

void push(const type&);

type & top();

size_type size();

eg:

#include

#include

using namespace std;

struct node

} ;

int main ()

向量:一種特殊的陣列

#include

建構函式和析構函式:

vectorc 

vectorc(n) 

vectorc (n,elem)

vectorc (c')

c.~vector()

成員函式:

c.asisgn(beg,end);將[beg,end)區間的資料賦值給c     beg end為位址

c.assign(n,elem);將n個elem賦值給c

c.back(); 返回最後乙個值,不檢查是否存在

c.begin(); 返回第乙個位址

c.capacity(); 檢查當前開闢的空間

c.size(); 檢查已經儲存的個數

c.clear(); 清空

c.empty(); 判斷是否為空

c.erase(pos)   刪除pos位置的值並返回下乙個資料的位置

c.erase(beg,end) 刪除區間內的內容

c.insert(pos,elem)在pos位置插入乙個elem,傳回下乙個資料的位置,下面也是

c.insert(pos,n,elem)

c.insert(pos,beg,end)插入區間值,無返回值

c.pop_back(); 刪除最後乙個元素

c.push_back(); 在尾部新增乙個元素

swap(c1,c2);

c1.swap(c2); 交換兩者位置

v[n]返回v中位置為n的元素

大於小於等於的判斷也適合

集合:內部通過鍊錶實現  採用了紅黑樹的平衡二叉樹的資料結構查詢和新增末元比vector慢但是新增和刪除比較快。多集multiset中可以有副本鍵,同一值可以多次出現

#include

建構函式和析構函式:

set c;

set c (op); op為排序準則

set c1 (c2);

set c (beg, end);

set c (beg, end,op);

c.~set ();

set的可選則形式

set以less<>(operator<)為排序準則

setmultiset

multiset

重要成員函式

iterator begin() ;返回指向第乙個元素的迭代器

iterator end();

void clear();

void empty();

iterator insert (type &val );插入乙個新的元素,返回新元素的位置

iterator insert (iteratorpos, type &val );pos是乙個提示性的位置,指出插入操作的搜尋起點。如果提示恰當可以大大加快速度

void erase(iterator pos);刪除pos位置的元素

void erase(iterator start,iterator end);

size_type erase(const type & val) 返回刪除的結點個數

pairequal_range(const type & val) 查詢多集中鍵值等於val的所有元素,返回知識範圍的兩個迭代器以pair返回。

size_type count(const type & val) 查詢迭代器中值為val的元素個數

iterator find(const type &val) 返回乙個迭代器指向鍵值為val的元素,如果沒有找到則返回end();

size_type size();容器中元素的個數

void swap(set&object) 交換兩個鍊錶中的元素

對映(map)

列表(list)

用法 stl 常用C 標準模板庫(STL)

定義 vectorinstname typename可以是任何基本型別,結構體或stl標準容器.2.遍歷訪問 1 通過下標 2 通過迭代器 for vector iterator it vi.begin it vi.end it vec i 和 vi.begin i 等價 3.常用函式 push b...

C 標準模板庫 STL 常用演算法

algorithm中的函式 find start,end,value start搜尋的起點,end搜尋的終點,要尋找的value值 find a.begin a.end value find a,a length,val 所有的返回,均是迭代器 容器 或指標 陣列 而非是直觀感覺上的索引下標。如果在...

C 標準模板庫STL

stl是標準c 庫的一部分。stl模板類為c 提供了完善的資料結構和演算法。stl的特點 型別引數化 即stl的 中可處理任意自定義型別的物件。泛型程式設計 generic programming 它以模板為基礎,弱化了 實體型別的差異,簡化了程式設計時問題抽象的模型,提供了更好的 封裝性和彈性。s...