范型編程_非變易算法


title: 范型編程_非變易算法
date: 2016-04-30 11:36:49
categories: 算法 #文章文類
tags: [范型編程,STL,Geekband]


8, 范型算法_非變易算法

定義

在不改變操作對象的前提下, 對元素進(jìn)行處理, 比如 查找,子序列搜索,統(tǒng)計(jì)等. 

具體包含:

  1. for_each
  2. find
  3. find_if
  4. adjacent_find
  5. find_first_of
  6. count
  7. count_if
  8. mismatch
  9. equal
  10. search

for_each

對區(qū)域內(nèi)每一個元素應(yīng)用func函數(shù)

find

對區(qū)域內(nèi) 返回第一個==val的迭代器, 否則返回end()

find_if

對區(qū)域內(nèi),返回符合操作的第一個元素, 對元素使用指定函數(shù), 當(dāng)函數(shù)返回true時(shí), 返回.

adjacent_find

對區(qū)域內(nèi), 返回第一個符合操作的元素迭代器. 如果一個元素等于它的下一個元素, 則返回該元素的迭代器.

adjacent_find(2)

對區(qū)域內(nèi), 返回第一個符合操作的元素迭代器. 使用自定義函數(shù)判斷元素和它下一個元素,如果函數(shù)返回true,則返回.否則返回end()

find_first_of

兩個區(qū)域. 返回第一個區(qū)域內(nèi)的元素迭代器 it1, 使得對于區(qū)域2內(nèi)某個元素迭代器it2, 滿足it1==it2 ,沒找到返回end()

count

返回個val值相同的個數(shù).

count_if

返回滿足提供函數(shù)==true的個數(shù)

mismatch(1)

返回在兩個區(qū)域內(nèi) 第一個不一樣的元素的迭代器

mismatch(2)

返回在兩個區(qū)域內(nèi), 兩者同步前進(jìn) 中第一個對于給定函數(shù)==false的迭代第

equal(1)

兩個區(qū)域同步前進(jìn),當(dāng)同位置兩元素相等時(shí),返回true,否則false

equal(2)

使用自定義函數(shù)來判斷

search(1)

在兩個區(qū)域中, 在第一個區(qū)域內(nèi), 查找連續(xù)的一段元素和第二個區(qū)域完全相等.找到則返回第一個區(qū)域中相等段的第一個元素的迭代器.

search(2)

使用自定義函數(shù)來判斷,代替1中的相等.

注:
v.end() 并不是最后一個元素, 是一個結(jié)束符.

一般第一個是判斷是否相等, 第二個是允許用戶自定義行為去判斷處理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容