C STL 演算法中各種演算法解析

2021-07-13 05:33:52 字數 1998 閱讀 5093



一,巡防演算法

for_each(容器起始位址,容器結束位址,要執行的方法)

#include #include #include using namespace std;

templatestruct plus2 };

void printelem(int& elem)

int main()

; for_each(ia,ia+7,printelem);//輸出

int ib=;

vectoriv(ib,ib+7);

for_each(iv.begin(),iv.end(),plus2());//更改元素

for_each(iv.begin(),iv.end(),printelem);//輸出

return 0;

}

二,find演算法

int *find(int *begin,int *end,int  value)

前閉後合的區間 begin,end中,查詢value如果查詢到了就返回第乙個符合條件的元素,否則返回end指標

#include #include using namespace std;

void printelem(int& elem)

int main();

int *i= find(ia,ia+7,9);//在整個陣列中查詢元素 9

int *j= find(ia,ia+7,3);//在整個陣列中查詢元素 3

int *end=ia+7;//陣列最後位置

if(i == end)

cout<<"沒有找到元素 9"《三,數值演算法

包含在標頭檔案中

#include #include //數值演算法

#include #include #include #include using namespace std;

int main()

; vectoriv(ia,ia+5);

cout<())<(),plus())partial_sum(iv.begin(),iv.end(),oite);//依次輸出前n個數的和

cout<());//依次輸出第乙個數減去(除第乙個數外到當前數的和)

cout<()); //輸出相鄰元素差值 前面+後面 。前面更改影響後面元素

cout<

四,基本演算法

#include #include #include using namespace std;

templatestruct display

六,set方法

#include #include #include #include using namespace std;

template struct display

}; templatestruct display

{ void operator()(t &x)const

{ cout//返回可以插入的第乙個位置

cout<<*lower_bound(iv.begin(),iv.end(),21)<());

cout<());

cout<());

cout<());

cout<());

cout<());

for_each(iv.begin(),iv.end(),display());

cout<());

cout<::iterator,vector::iterator> pairite;

//返回等於22的乙個小區間

pairite = equal_range(iv.begin(),iv.end(),22);

cout<<*(pairite.first)<());

cout<());

cout<());

for_each(iv.begin(),iv.end(),display());

cout<());

cout<

C STL中的排序演算法

直接使用sort 演算法,所需標頭檔案為 include algorithm 如果元素為數字,預設為公升序,可以自定義比較函式來控制元素的排序規則。預設 自定義排序規則 當vector中的元素為結構體時,可以自定義函式對結構體的排序規則自行定義。在這裡我們還是以int型變數為例子。include u...

C STL填充演算法

include include include include include include include include include using namespace std template void printvector vectorv vectorvarr arr,arr 9 pri...

C STL演算法簡述

標準庫定義了超過100個演算法,想要高效的使用這些演算法需要了解他們的結構而不是單純記憶每個演算法的細節,以下是演算法框架的描述和理解 1 beg和end是表示元素範圍的迭代器,幾乎每個演算法都對應乙個由beg和end表示的序列,其中beg表示開始位置,end表示結束位置 2 beg2是表示第二個輸...