C 標準庫常用演算法

2021-10-07 08:37:44 字數 3537 閱讀 4914

find

(beg, end, val)

; 根據equal操作符,循序查詢[first, last)內所有的元素,找出第乙個匹配「等同條件者」。如果找到,就返回乙個指向匹配元素的迭代器,否者返回迭代器end()。

equal

(beg1, end1, beg2)

; 確定兩個序列是否相等。如果輸入範圍中的每個元素都與從beg2開始的序列中的對應元素相等,就返回true;

min(val1, val2)

; 返回兩個數中的大數

max(val1, val2)

; 返回兩個數中的小數

min_element

(beg, end)

; 返回最小元素的迭代器

max_element

(beg, end)

; 返回最大元素的迭代器

fill

(beg, end, val)

; 將值val賦給[beg,end)範圍內的所有元素

fill_n

(beg, cnt, val)

; 將值val賦給[beg,beg+cnt)範圍內的所有元素

accumululate

(beg, end ,val)

; 對[beg,end)內元素之和,加到初始值val上。

unqiue

(beg, end)

; 去除相鄰的重複元素(只保留乙個)

,所以使用前需要對陣列進行排序。這兩個引數表示對容器中[it_1,it_2)範圍的元素進行去重(注:區間是前閉後開,即不包含it_2所指的元素)

返回值是乙個迭代器,它指向的是去重後容器中不重複序列的最後乙個元素的下乙個元素。

reverse

(beg, end)

; 將區間[beg,end)內的元素全部逆序;

count

(begin,end,val)

; 統計等於val的元素個數

count_if

(beg,end,func)

; 函式count的_if版本

for

(char c:s) 遍歷字串

vector<

int>

& vec; 遍歷陣列向量

for(

int num : vec)

定義乙個遍歷字元c,讓它分bai別等於字串陣列s裡面的各個字元,然後執行下面的語句,當c被賦值為chars裡面所有字元各一次後,就會退出這個迴圈。上面這句**相當於:

for

(int i =

0; i < s.

length()

; i++

)

# include

標頭檔案定義的符號常量

char_min       char的最小值

schar_max      signed

char 最大值

schar_min      signed

char 最小值

uchar_max      unsigned

char 最大值

shrt_max       short 最大值

shrt_min      short 最小值

ushrt_max      unsigned

short 最大值

int_max       int 最大值

int_min       int 最小值

uint_max       unsigned

int 最大值

uint_min       unsigned

int 最小值

long_max      long最大值

long_min       long最小值

ulong_max      unsigned

long 最大值

flt_mant_dig    float 型別的尾數

flt_dig       float 型別的最少有效數字位數

flt_min_10_exp   帶有全部有效數的float型別的負指數的最小值(以10為底)

flt_max_10_exp   float型別的正指數的最大值(以10為底)

flt_min       保留全部精度的float型別正數最小值

flt_max       float型別正數最大值

# include

size_type count (

const key_type& key )

const

count函式用以統計key值在unordered_map**現的次數。實際上,c++ unordered_map不允許有重複的key。因此,如果key存在,則count返回1,如果不存在,則count返回0.

iterator find (

const key_type& key )

;如果key存在,則find返回key對應的迭代器,如果key不存在,則find返回unordered_map::end。因此可以通過

map.

find

(key)

== map.

end(

)

set<

int>

st(vec.

begin()

, vec.

end())

;vec.

assign

(st.

begin()

, st.

end())

;

vectorint>

>

vec(m,vector<

int>

(n))

;

int

** a2 =

newint

*[rows]

;for

(int i=

0;i) a2[i]

=new

int[columns]

;for

(int i=

0;i)delete

a2[i]

;delete

a2;

vector<

int>

::iterator it =

find

(track.

begin()

, track.

end(

), value);if

(it != track.

end())

cout<<

*it

cout<<

"can not find"

<(s.begin()

,s.end()

);return s;

#include

優點: 缺點

C 演算法標準庫常用演算法

1.演算法 找到某個值,或者某個謂詞判斷 find find if 計數某個值,或者某個謂詞判斷 count count if 查詢子串行 search 查詢最值 min element 2.隨機數 引擎 分布 例程 include include using namespace std int m...

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

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

C 標準庫演算法

在遵循 不重複製造輪子 的原則下,對於一些基本演算法,要盡可能地使用標準庫提供的函式 在中定義 一是節省時間,二是標準實現在演算法效能上 我在此簡要回顧一下標準庫中都提供了哪些常見的演算法。1 基本數學相關 max t1,t2 和min t1,t2 返回t1和t2中的較大 較小者。max eleme...