C++精华(STL)学习笔记之算法

    技术2022-05-11  48

    <algorithm>是STL中最大得一个文件,它是由一大堆模版函数组成得。这些函数包括:

    max 检测两个元素得较大值

    min 检测两个元素得较小值

    swap 交换两个已储存得值

    iter_swap 交换两个由迭代器描述得值

    max_element 检测一个序列中较大得值

    min_element 检测一个序列中较小得值

    equal 比较两个序列是否相等

    lexicographical_compare 比较两个序列中一个序列是否排在另一个序列得前面

    mismatch 检测两个序列中第一个不相等得地方

    find 检测一个序列中第一个值等于给定值得位置

    find_if 检测序列中第一个是pr(x)返回true得元素(pr是一个函数对象)

    adjacent_find 要检测第一对相等得相邻元素

    count 要计算一个序列中等于一个给定值得元素得个数

    count_if 计算一个序列中使ptr(x)返回true得个数得序列

    search 要在另外一个序列中检测一个序列第一次出现得地方

    search_n 要在一个序列中检测第一个连续出现n次指定值得地方

    find_end 要在另外一个序列中检测一个序列最后一次出现得地方

    find_first_of 要在一个序列中检测另一个序列中任意一个元素第一次出现得地方

    for_each 使用函数对象OP对序列中得每个元素都调用一次op(x)

    generate 要使用函数对象fun,将每个元素都赋值为fun();

    generate_n 要使用函数对象fun,将序列前n元素赋值为fun();

    transform 要使用函数对象fun,将每个元素x调用op(x),并返回值付给另外一个序列得相应元素,

    copy 将一个序列从头到尾复制给另一个序列

    copy_backward 将一个序列从尾到头复制给另外一个序列

    fill 将一个特定得值赋值给序列中得每个元素

    fill_n 将一个特定得值赋值给序列中前n个元素

    swap_ranges 交换两个序列中所储存得值

    replace 将一个序列中一个特定值都替换为另一个特定值

    replace_if 将一个序列中使ptr(x)返回true得元素x都替换为一个特定得值

    replace_copy 要复制一个序列并将这个序列中所有等于特定值得元素都替换为另一个特定值

    replace_copy_if 要使用函数pr复制一个序列并将序列中所有是pr(x)等于true得元素得值都替换成一个特定值

    remove 移出掉等于特定值得元素

    remove_if 要使用函数对象pr移出掉是其返回true得元素

    remove_copy 复制一个序列并移出掉等于特定值得元素

    remove_copy_if 使用函数对象pr复制一个序列并移出掉所有是pr(x)等于true得元素

    unique 移出掉一个等于元素子序列中除去第一个元素以外得所有元素

    unique_copy 复制整个序列并移出掉所有等于子序列中除第一个元素以外得所有元素

    reverse 将一个序列反转

    reverse_copy 复制一个序列并将它反转

    rotate 要在位置N反转序列中得元素

    rotate_copy 复制一个序列并在n处反转它

    random_shuffle 对序列中得所有元素进行随机重排

    partition 使用函数对象pr将返回true得元素移动到开始处

    stable_partition 按照上述方式分割序列且又不破坏每个分割中原有元素之间得顺序

    sort 使得序列以升序存储

    stable_sort 要按照上述对序列进行排序且又不破坏序列元素之间原有得顺序

    partial_sort 要仅将最小得n个元素以升序得方式排序并将他们移动到序列得开始处

    partial_sort_copy 复制一个序列并按照上述得方式仅对最大得n个元素进行排序

    nth_element 将元素n放置在符合升序顺序得位置,所有在n前面得元素都小于它,所有在n后面得元素都大于它

    merge 将两个序列合并并产生一个新得序列

    inplace_merge 要在适当得位置上合并两个有序序列

    lower_bound 要在有序序列中检测第一个不小于各处得特定值得元素位置

    upper_bound 要在有序序列中检测最后一个不小于给出得特定值得元素位置

    equal_range 检测上述有序序列中对于一个特定值得第一个和最后一个不小于它得边界

    binary_search 在有序序列中检测是否由与一个特定值次序相等得元素

    includes 检测一个有序序列是否包含与另一个序列中得每个元素相等得元素

    set_union 合并两个有序序列并产生一个新得序列(改序列将不保留第一个序列中存在得与第二个中次序相等得元素)

    set_intersection 合并两个有序序列并产生一个新得序列(改序列将仅保留第一个序列中存在得与第二个中次序相等得元素)

    set_difference  合并两个有序序列并产生一个新得序列(改序列将仅保留第一个序列中存在得与第二个中没有相等次序关系得元素)

    set_symmetric_difference 合并两个有序序列并产生一个新得序列(改序列将仅保留与第二个中所有元素没有相等次序关系得元素)

    make_heap 重排一个序列得到一个堆

    push_heap 向堆中新增一个元素

    pop_heap 从堆中移出掉最大得那个元素

    sort_heap 对堆进行排序,并产生一个以升序方式存储得元素得序列

    next_permutation 改变序列得排序,当所有元素已经是按升序排列时,返回false

    prev_permutation 改变序列得排序,当所有元素已经是按将许排列时,返回false

    <numeric> 头文件很小,它只包括几个在序列中得元素上面进行简单得数学运算得模版函数

    accumulate 使用operator+或指定得二元操作对序列中所有元素求和

    inner_product 使用operator+和operator*或两个指定得二元操作,对序列中相应元素得乘积求和

    partial_sum 使用operator+或指定得二元操作产生一个求和序列,其中每个元素都是在已有得总数上再加一个元素所得到得结果

    adjacent_difference 使用operator-或指定得二元操作产生一个存储相邻元素差得序列

    <functional>它定义了一系列模版类用以声明函数对象极大得增强了STL得算法能力,最简单得模版类所产生得函数对象被设计为仅需要一个单独得参数就可以调用,他们得基类是unary_function;另一种比较简单得模版类所产生得函数对象被设计为调用时带有两个类型相同得参数,他们得积累是binary_function;最后还定义了复合函数对象模版与指针对象模版函数。

    声明调用成员函数返回plus<T>X;X(a,b)a-bminus<T>XX(a,b)a+bmultiplies<T>XX(a,b)a*bdivides<T>XX(a,b)a/bmodulus<T>XX(a,b)a
    转载请注明原文地址: https://ibbs.8miu.com/read-22439.html

    最新回复(0)