
[杂谈] 3.#include algorithm 用法用途
头文件为 C/C++ 程序提供了丰富的算法函数,便于开发者快速调用。尽管大多数非简单算法可以使用这个头文件中的函数实现,但仍需了解其内部机制以确保最佳性能。以下是该头文件中常用操作的分类及简要说明:
发布日期:2021-05-12 23:13:40
浏览次数:21
分类:精选文章
本文共 2233 字,大约阅读时间需要 7 分钟。
包括
一、非修改性操作
逐个操作
在序列中依次执行操作,如遍历每个元素。for_each()
查找操作
根据条件查找特定元素或位置。find()
: 查找值的第一次出现位置。find_if()
: 查找满足谓词的第一个元素。find_end()
: 查找值最后一次出现位置。find_first_of()
: 在序列中找到特定值集的第一次出现。adjacent_find()
: 查找相邻元素的对应关系。
计数操作
统计序列中特定值的出现次数。count()
: 统计某个值出现的次数。count_if()
: 统计满足谓词的元素数量。
比较操作
对比序列中的元素。mismatch()
: 找到两个序列中的第一个不匹配元素。equal()
: 检查两个序列是否对应相等。
二、修改性操作
复制操作
将序列元素复制到另一个序列。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()
: 对前 n 个元素排序。partial_sort_copy()
: 复制序列并前置排序。
-
定位操作
nth_element()
: 找到第 n 个元素的位置。
-
二分查找操作
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()
: 对堆进行排序。
-
单值操作
min()
: 两个值中的较小值。max()
: 两个值中的较大值。
-
序列操作
min_element()
: 找到序列中的最小值。max_element()
: 找到序列中的最大值。
- 词典序操作
lexicographical_compare()
: 比较两个序列的词典序。
- 排列操作
next_permutation()
: 生成下一个字典序排列。prev_permutation()
: 生成上一个字典序排列。
三、排序及相关操作
四、有序集合操作
五、堆操作
六、最大和最小操作
七、词典比较
八、排列生成器
通过合理运用
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年05月09日 09时45分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
metaq杂记
2025-04-13
Metasploit CGI网关接口渗透测试实战
2025-04-13
Metasploit GUI图形界面使用
2025-04-13
Metasploit SCADA渗透测试实战
2025-04-13
Metasploit SQL注入漏洞渗透测试实战
2025-04-13
Metasploit Web服务器渗透测试实战
2025-04-13
Metasploit Web认证渗透测试实战
2025-04-13
Metasploit Windows AD渗透测试实战
2025-04-13
Metasploit 信息收集实战
2025-04-13
Metasploit 命令注入漏洞渗透测试实战
2025-04-13
Metasploit 客户端漏洞利用实战
2025-04-13
Metasploit 文件上传漏洞渗透测试实战
2025-04-13
Metasploit 文件包含与跨站请求伪造渗透测试实战
2025-04-13
Metasploit 渗透测试框架快速入门
2025-04-13
Meta最新视频生成工具:emu video技术报告解读
2025-04-13
MFC 打印预览 映射模式 坐标变换
2025-04-13
MFC不规则窗体
2025-04-13
MFC之处理消息映射的步骤...
2025-04-13
MFC对话框屏幕居中
2025-04-14
MFC工作笔记0002---MFC HelloWorld程序
2025-04-14