Algorithm头文件中的常用函数
Algorithm头文件是C++标准库中的一部分,提供了许多常用的算法函数,用于处理序列、容器等数据结构。下面将对Algorithm头文件中的常用函数进行分类总结。
非修改性序列操作
非修改性序列操作是指不改变原序列的操作,包括:
* for_each(): 对序列中的每个元素执行某操作
* find(): 在序列中找出某个值的第一次出现的位置
* find_if(): 在序列中找出符合某谓词的第一个元素
* find_end(): 在序列中找出一子序列的最后一次出现的位置
* find_first_of(): 在序列中找出第一次出现指定值集中之值的位置
* adjacent_find(): 在序列中找出相邻的一对值
* count(): 在序列中统计某个值出现的次数
* count_if(): 在序列中统计与某谓词匹配的次数
* mismatch(): 找出两个序列相异的第一个元素
* equal(): 两个序列中的对应元素都相同时为真
* search(): 在序列中找出一子序列的第一次出现的位置
* search_n(): 在序列中找出一值的连续n次出现的位置
修改性序列操作
修改性序列操作是指可能改变原序列的操作,包括:
* copy(): 从序列的第一个元素起进行复制
* copy_backward(): 从序列的最后一个元素起进行复制
* swap(): 交换两个元素
* swap_ranges(): 交换指定范围的元素
* iter_swap(): 交换由迭代器所指的两个元素
* transform(): 将某操作应用于指定范围的每个元素
* replace(): 用一个给定值替换一些值
* replace_if(): 替换满足谓词的一些元素
* replace_copy(): 复制序列时用一给定值替换元素
* replace_copy_if(): 复制序列时替换满足谓词的元素
* fill(): 用一给定值取代所有元素
* fill_n(): 用一给定值取代前n个元素
* generate(): 用一操作的结果取代所有元素
* generate_n(): 用一操作的结果取代前n个元素
* remove(): 删除具有给定值的元素
* remove_if(): 删除满足谓词的元素
* remove_copy(): 复制序列时删除具有给定值的元素
* remove_copy_if(): 复制序列时删除满足谓词的元素
* unique(): 删除相邻的重复元素
* unique_copy(): 复制序列时删除相邻的重复元素
* reverse(): 反转元素的次序
* reverse_copy(): 复制序列时反转元素的次序
* rotate(): 循环移动元素
* rotate_copy(): 复制序列时循环移动元素
* random_shuffle(): 采用均匀分布来随机移动元素
* partition(): 将满足某谓词的元素都放到前面
* stable_partition(): 将满足某谓词的元素都放到前面并维持原顺序
序列排序及相关操作
序列排序及相关操作包括:
* sort(): 以很好的平均效率排序
* stable_sort(): 排序,并维持相同元素的原有顺序
* partial_sort(): 将序列的前一部分排好序
* partial_sort_copy(): 复制的同时将序列的前一部分排好序
* nth_element(): 将第n个元素放到它的正确位置
* lower_bound(): 找到大于等于某值的第一次出现
* upper_bound(): 找到大于某值的第一次出现
* equal_range(): 找到(在不破坏顺序的前提下)可插入给定值的最大范围
* binary_search(): 在有序序列中确定给定元素是否存在
* merge(): 归并两个有序序列