title: 范型编程_非变易算法
date: 2016-04-30 11:36:49
categories: 算法 #文章文类
tags: [范型编程,STL,Geekband]
8, 范型算法_非变易算法
定义
在不改变操作对象的前提下, 对元素进行处理, 比如 查找,子序列搜索,统计等.
具体包含:
- for_each
- find
- find_if
- adjacent_find
- find_first_of
- count
- count_if
- mismatch
- equal
- 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() 并不是最后一个元素, 是一个结束符.
一般第一个是判断是否相等, 第二个是允许用户自定义行为去判断处理