函式
說明for_each()
對每個元素執行某操作
count()
返回元素個數
count_if()
返回滿足某一準則(條件)的元素個數
min_element()
返回最小值元素(以迭代器表示)
max_element()
返回最大值元素(以迭代器表示)
find()
搜尋等於某值的第乙個元素
find_if()
搜尋滿足某個準則的第乙個元素
search_n()
搜尋具有某特性的第一段「n個連續元素」
search()
搜尋某個子區間第一次出現的位置
find_end()
搜尋某個子區間最後一次出現的位置
find_first_of()
搜尋等於「某數個值之一」的第乙個元素
adjacent_find()
搜尋連續兩個相等(或符合特定準則)的元素
equal()
判斷兩區間是否相等
mismatch()
返回兩個序列的各組對應元素中,第一對不相等元素
lexicographical_compare()
判斷某一串行在字典順序下是否小於另一串行
1 for_each
unaryproc for_each(inputiterator beg,inputiterator end,unaryproc op);
(1)對區間[beg,end)中的每乙個元素呼叫: op(elem)
2 count 和 count_if (元素計數)
difference_type count(inputiterator beg,inputiterator end,constt & value);
difference_type count_if(inputiterator beg,inputiterator end,unarypredicate op);
(1)第一種形式會計算區間[beg,end)中元素值等於value的元素個數;
(2)第二種形式會計算區間[beg,end)中令以下一元判斷式 op(elem)結果為true的元素個數
3 min_element 和 max_element (最大值和最小值)
inputiterator min_element(inputiterator beg,inputiterator end);
inputiterator min_element(inputiterator beg,inputiterator end,compfunc op);
inputiterator max_element(inputiterator beg,inputiterator end);
inputiterator max_element(inputiterator beg,inputiterator end,compfunc op);
(1)返回區間[beg,end)中最小或最大元素的位置.
(2)無op引數的版本,以operator《進行元素的比較.
(3)op用來比較兩個元素 op(elem1,elem2),若第乙個元素小於第二個元素,應當返回true.
(4)若存在多個最小值或最大值,上述演算法返回找到的第乙個最小或最大值。
4 find 和 find_if (搜尋第乙個匹配元素)
inputiterator find(inputiterator beg,inputiterator end,const t & value);
inputiterator find_if(inputiterator beg,inputiterator end,unarypredicate op);
(1)第一種形式返回區間[beg,end)中第乙個元素等於value的元素位置。
(2)第二種形式返回[beg,end)中令一下一元判斷式op(elem)結果為true的第乙個元素。
5 search_n (搜尋前n個連續匹配值)
inputiterator search_n(inputiterator beg,inputiterator end,size count,const t & value);
inputiterator search_n(inputiterator beg,inputiterator end,size count,const t & value,binarypredicate op);
(1)第一種形式返回區間[beg,end)中第一組「連續count個元素值全等於value」的元素位置。
(2)第二種形式返回區間[beg,end)中第一組「連續count個造成一元判斷式op(elem,value)結果為true」的元素位置。
6 search ( 搜尋第乙個子區間)
forwarditertor serach(forwarditertor beg,forwarditertor end,
forwarditertor searchbeg,forwarditertor searchend);
forwarditertor1 serach(forwarditertor beg,forwarditertor end,
forwarditertor searchbeg,forwarditertor searchend,binarypredicate op);
(1)兩種形式返回區間[beg,end)內和「區間[searchbeg,searchend)完全吻合」的第乙個子區間內的第乙個元素的位置。
(2)第一種形式中,子區間的元素必須完全等於[searchbeg,searchend)的元素。
(3)第二種形式中,子區間的元素和[searchbeg,searchend)的對應元素必須造成二元判斷式op(elem,searchelem)的判斷式的結果為true。
7 find_end (搜尋最後乙個子區間)
forwarditertor find_end(forwarditertor beg,forwarditertor end,
forwarditertor searchbeg,forwarditertor searchend);
forwarditertor1 find_end(forwarditertor beg,forwarditertor end,
forwarditertor searchbeg,forwarditertor searchend,binarypredicate op);
說明同上:search
7 find_first_of (搜尋某些元素第一次出現的地點)
forwarditertor find_end(forwarditertor beg,forwarditertor end,
forwarditertor searchbeg,forwarditertor searchend);
forwarditertor1 find_end(forwarditertor beg,forwarditertor end,
forwarditertor searchbeg,forwarditertor searchend,binarypredicate op);
(1)第一種形式返回第乙個「既在區間[beg,end)中出現,也在區間[searchbeg,searchend)中出現的元素的位置」。
(2) 第二種形式返回區間[beg,end)中第乙個這樣的元素:它和區間[searchbeg,searchend)中每乙個元素執行op(elem,searchelem)結果是true。
8 adjacent_find (搜尋兩個連續且相等的元素)
inputitertor adjacent_find(inputitertor beg,inputitertor end);
inputitertor adjacent_find(inputitertor beg,inputitertor end,binarypredicate op)
(1)第一種形式返回區間[beg,end)中第一對「連續兩個相等元素「」之中的第乙個元素的位置。
(2)第二種形式返回區間[beg,end)中第一對「連續兩個元素使二元判斷式op(elem,nextelem)的結果為true」的第乙個元素的位置。
變動性演算法modifying algorithms
目的 變動內容 注意 目標區間不能是關聯式容器 所有具有單一目標區間的演算法,都返回最後乙個被複製元素的下乙個位置 一。複製 1.outputiterator copy inputiterator sourcebegin,inputiterator sourceend,outputiteratord...
STL 非變異演算法之查詢
本博文主要講了find find if find first of find end adjacent find search search n 這些stl中的查詢演算法 例項1 include include include using namespace std bool myless int ...
讀書筆記 演算法之變動性演算法
複製元素 copy begin,end,destbegin copy backward sourcebegin,source end,destend 將區間的元素複製到destbegin destend裡面去 copy正向,copy backward反向 stl沒有copy if 只有remove ...