STL算法总结

    技术2025-05-17  46

     

    函数

    功能说明

    查找

    一般查找

    adjacent_find

    元素间的之间关系的查找

    find

    查找某固定值

    find_if

    根据条件查找

    find_end

    第一个容器里查找第二个容器中所有的元素的位置,返回第一个容器的迭代器

    find_first_of

    查找两容器中第一个相同的元素,返回第一个容器的迭代器。与find_end的区别,find_first_of只需要一个匹配,而find_end需要全部匹配。

    search

    find_end功能基本一样,区别:search它找到第一个就结束了,而find_end找到最后一个子串。

    search_n

    不旦find_iffind功能,而且可以带重复查找到的条件

    max_element

    找到最大元素

    min_element

    找到最小元素

    二分查找

    lower_bound

    返回找到的元素,如查找不到返回该插入的地方

    upper_bound

    返回该插入的地方

    binary_search

    仅返回要查找的元素是否存在

    equal_range

    返回一个pair,元素1lower_bound的返回值,元素2upper_bound返回值

    替换

    replace

    对元素进行值值替换

    replace_copy

    对母容器不调整,对将数据复制到输出容器,并替换的元素

    replace_if

    调整要根据条件将要替换的元素

    replace_copy_if

    对母容器不调整,对将数据复制到输出容器,并根据条件替换的元素

    移除

    remove_copy

    调整要删除的元素放到尾端

    remove

    对母容器不调整,对将数据复制到输出容器,并调整要删除的元素放到尾端

    remove_if

    调整要根据条件将要删除的元素放到尾端

    remove_copy_if

    对母容器不调整,对将数据复制到输出容器,并调整要根据条件删除的元素放到尾端

    unique

    条件:重复元素必须靠近在一起,将重复元素移到容器末端

    unique_copy

    动作与unique一样,只是不改变母容器,将数据输出到新容器

    简单容器

    for_each

    参数一元函数,将容器里每一个值输出到函数里

    generate

    参数一元函数,函数每一个返回值给容器赋值

    generate_n

    参数一元函数,函数每一个返回值给容器赋值,范围是前N个元素

    transform

    参数一元函数(条件型),将符合条件的元素输出到输出容器里

    swap_ranges

    容器一与容器二进制交换

    集合(需要排序)

    set_union

    S1S2,不存在重复元素

    set_intersection

    S1S2

    set_difference

    S1-S2

    set_symmetric_difference

    (S1-S2)U(S2-S1)

    includes

    S2是否属于S1

    merge

    S1S2合并,与set_union的区别为,当前函数存在重复,而set_union是不存在重复。

    inplace_merge

    用于容器,容器内部分两段排序,两段不管升降序,将这两段合并成自定义序列(升序,降序或自定义)

    统计

    count

    计算值为某元素的数目

    count_if

    计算符合条件元素的数目

    Heap算法

    push_heap

     

    pop_heap

     

    make_heap

     

    sort_heap

     堆排序

    partial_sort

    部分排序

    partial_sort_copy

    partial_sortcopy

    内部其它调动

    sort

    排序

    random_shuffle

    随机打乱

    partition

    根据条件将容器分成两块,返回第二块首元素迭代器

    nth_element

    根据位置将容器分成两块,前面一块都大于后一块,或反之

    reverse

    首末两块元素相互倒致

    reverse_copy

    反转 copy

    rotate

    元素分两块,左右旋转

    rotate_copy

    rotatecopy

    next_permutation

    过于复杂。。

    prev_permutation

    过于复杂。。

    最新回复(0)