C++ algorithm 头

  • 定义

    algorithm 头文件定义了一组专门设计用于元素范围的函数集合。范围是可以通过迭代器或指针访问的任何对象序列,例如一些STL容器的数组或实例。 但是请注意,算法通过迭代器直接对值进行操作,而不以任何方式影响任何可能容器的结构(它从不影响容器的大小或存储分配)。
  • 函数

    非修改序列操作:
    函数 说明
    all_of 范围内所有元素的测试条件
    any_of 测试范围内的任何元素是否满足条件
    none_of 测试是否没有元素满足条件
    for_each 将功能应用于范围
    find 在范围内寻找值
    find_if 查找范围内的元素
    find_if_not 查找范围内的元素(负条件)
    find_end 查找范围中的最后一个子序列
    find_first_of 从范围内的集合中查找元素
    adjacent_find 在范围内找到相等的相邻元素
    count 计算范围内的值的出现
    count_if 返回范围内满足条件的元素数
    mismatch 返回两个范围不同的第一位置
    equal 测试两个范围内的元素是否相等
    is_permutation 测试范围是否是另一个的排列
    search 子序列的搜索范围
    search_n 元素的搜索范围
    修改序列操作:
    函数 说明
    copy 复制元素范围
    copy_n 复制元素
    copy_if 复制范围的某些元素
    copy_backward 向后复制元素范围
    move 移动元素范围
    move_backward 向后移动元素范围
    swap 交换两个对象的值
    swap_ranges 交换两个范围的值
    iter_swap 交换两个迭代器指向的对象的值
    transform 转换范围
    replace 替换范围内的值
    replace_if 替换范围内的值
    replace_copy 复印范围替换值
    replace_copy_if 复印范围替换值
    fill 用值填充范围
    fill_n 用值填充序列
    generate 用函数生成范围值
    generate_n 用函数生成序列值
    remove 从范围中删除值
    remove_if 从范围中删除元素
    remove_copy 复印范围去除值
    remove_copy_if 复制范围删除值
    unique 删除范围内的连续重复项
    unique_copy 复制范围删除重复项
    reverse 反向范围
    reverse_copy 复印范围反转
    rotate 向左旋转范围内的元素
    rotate_copy 复印范围向左旋转
    random_shuffle 随机重新排列范围中的元素
    shuffle 使用生成器随机重新排列范围内的元素
    函数 说明
    分区:
    is_partitioned 测试范围是否已分区
    partition 分区范围一分为二
    stable_partition 分区范围为两个-稳定的顺序
    partition_copy 分区范围一分为二
    partition_point 获取分区点
    排序:
    sort 对范围内的元素进行排序
    stable_sort 排序元素,保留等价顺序
    partial_sort 部分排序范围内的元素
    partial_sort_copy 复制并部分排序范围
    is_sorted 检查范围是否已排序
    is_sorted_until 查找范围内的第一个未排序元素
    nth_element 范围内的元素排序
    二分查找(对分区范围/排序范围进行操作):
    lower_bound 返回迭代器到下限
    upper_bound 返回迭代器到上限
    equal_range 获取相等元素的子范围
    binary_search 测试值是否按排序顺序存在
    合并(对排序范围进行操作):
    merge 合并排序范围
    inplace_merge 合并连续的排序范围
    includes 测试排序范围是否包括另一个排序范围
    set_union 两个排序范围的并集
    set_intersection 两个排序范围的交集
    set_difference 两个排序范围的差异
    set_symmetric_difference 两个排序范围的对称差异
    堆:
    push_heap 将元素推入堆范围
    pop_heap 堆范围内的弹出元素
    make_heap 从范围堆
    sort_heap 排序堆元素
    is_heap 测试范围是否是堆
    is_heap_until 查找不是按堆顺序的第一个元素
    Min/max:
    min 返回最小
    max 返回最大
    minmax 返回最小和最大元素
    min_element 返回范围内的最小元素
    max_element 返回范围内的最大元素
    minmax_element 返回范围中的最小和最大元素
    其他:
    lexicographical_compare 词法小于
    next_permutation 将范围转换为下一个排列
    prev_permutation 将范围转换为先前的排列