STL(二十一)非变易算法

     非变易算法是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。作为算法函数参数的迭代器,一般为Input Iterator输入迭代器,具有“++”迭代和“*”访问操作。通过迭代器的元素遍历,可对迭代器区间所界定的元素进行操作。因此,非变易算法具有极为广泛的适用性,基本上可应用于各种容器。

一、逐个容器元素for_each

#include <stl_algo.h>

template <class InputIter, class Function>
Function for_each(InputIter first, InputIter last, Function f) {
    for (; first != last; ++first) //
        f(*first);
    return f;
}
二、查找容器元素find

template <class InputIter, class T>
inline InputIter find(InputIter first, InputIter last, const T& val, input_iterator_tag) {
    while (first != last && !(*first == val))
        ++first;
    return first;
 }

三、条件查找容器元素find_if


四、邻近查找容器元素adjacent_find


五、范围查找容器元素find_first_of


六、统计等于某值的容器元素个数count


七、条件统计容器元素个数count_if


八、元素不匹配查找mismatch


九、元素相等判断equal


十、子序列搜索search

     search算法函数在一个序列中搜索与另一序列匹配的子序列。

十一、重复元素子序列搜索search_n


十二、最后一个子序列搜索find_end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值