美文网首页STL
范型编程_非变易算法

范型编程_非变易算法

作者: alamu | 来源:发表于2016-05-04 12:03 被阅读26次

    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() 并不是最后一个元素, 是一个结束符.

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

    相关文章

      网友评论

        本文标题:范型编程_非变易算法

        本文链接:https://www.haomeiwen.com/subject/mvmrrttx.html