STL

范型编程_非变易算法

2016-05-04  本文已影响26人  alamu

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


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

定义

在不改变操作对象的前提下, 对元素进行处理, 比如 查找,子序列搜索,统计等. 

具体包含:

  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

对区域内每一个元素应用func函数

find

对区域内 返回第一个==val的迭代器, 否则返回end()

find_if

对区域内,返回符合操作的第一个元素, 对元素使用指定函数, 当函数返回true时, 返回.

adjacent_find

对区域内, 返回第一个符合操作的元素迭代器. 如果一个元素等于它的下一个元素, 则返回该元素的迭代器.

adjacent_find(2)

对区域内, 返回第一个符合操作的元素迭代器. 使用自定义函数判断元素和它下一个元素,如果函数返回true,则返回.否则返回end()

find_first_of

两个区域. 返回第一个区域内的元素迭代器 it1, 使得对于区域2内某个元素迭代器it2, 满足it1==it2 ,没找到返回end()

count

返回个val值相同的个数.

count_if

返回满足提供函数==true的个数

mismatch(1)

返回在两个区域内 第一个不一样的元素的迭代器

mismatch(2)

返回在两个区域内, 两者同步前进 中第一个对于给定函数==false的迭代第

equal(1)

两个区域同步前进,当同位置两元素相等时,返回true,否则false

equal(2)

使用自定义函数来判断

search(1)

在两个区域中, 在第一个区域内, 查找连续的一段元素和第二个区域完全相等.找到则返回第一个区域中相等段的第一个元素的迭代器.

search(2)

使用自定义函数来判断,代替1中的相等.

注:
v.end() 并不是最后一个元素, 是一个结束符.

一般第一个是判断是否相等, 第二个是允许用户自定义行为去判断处理

上一篇下一篇

猜你喜欢

热点阅读