C++常见算法大全(自用)
查找算法
-
adjacent_find : 查重复数,返回首个元素iter
-
binary_search`: 二分查找
-
count: 区间统计
-
count_if: 范围查找统计个数
equal: 比较
-
equal_range :区间元素比较
-
find:区间查找元素
-
find_first_of:区间查找第一次出现值
-
find_if : 条件查找
-
upper_bound:查找最后一个大于等于val的位置
-
lower_bound: 查找第一个大于等于val的位置
-
search:子序列查找位置
-
search_n:子序列查找出现次数
排序和通用算法
排序和通用算法就是用来给容器排序,主要的排序算法主要是有以下14个:
-
merge: 归并排序,存于新容器
-
inpace_merge: 归并排序,覆盖原区间
-
sort: 排序,更改原容器顺序
-
stable_sort: 排序,保存原容器数据顺序
nth_element: 关键字排序
-
partition:范围排序
-
partial_sort:范围排序
-
partial_sort_copy:范围排序外加复制操作
-
stable_partition: 范围排序,保存原容器顺序
-
random_shuffle: 随机排序
-
reverse:逆序原容器
-
reverse_copy: 逆序容器保存到新容器
-
rotate:移动元素到容器末尾
-
rotate_copy:移动元素到新容器
删除和替换算法
删除和替换算法一般都会修改容器的存储现状,一般处理删除和替换的算法主要有以下的15种:
-
copy: 拷贝函数
-
copy_backward: 逆序拷贝
-
iter_swap: 交换
-
remove: 删除
remove_copy: 删除元素复制到新容器
-
remove_if:条件删除
-
remove_copy_if:条件删除拷贝到新容器
-
replace:替换
-
replace_copy: 替换,结果放到新容器
-
replace_if: 条件替换
-
replace_copy_if:条件替换,结果另存
-
swap: 交换
-
swap_range:区间交换
-
unique:去重
unique_copy:去重,结果另存
排列组合算法
提供计算给定集合按一定顺序的所有可能排列组合 ,主要有以下两个:
next_permutation:下一个排序序列的组合
prev_permutation:上一个排序序列的组合
算术运算算法主要用来做容器的算术运算,使用的时候加上numeric头文件,主要有以下4个:
accumulate:区间求和
partial_sum:相邻元素的和
inner_product:序列内积运算
adjacent_difference:相邻元素的差
生成和异变算法
生成和一遍算法总共有以下6个下,相对于来说for_each用的相对于来说更多一些:
for_each:迭代访问
fill:填充方式初始容器
fill_n:指定长度填充容器
generate_n:填充前n个位置
transform:一元转换和二元转换
关系算法
关系算法类似与条件表达式一样的作用,主要用来判断容器中元素是否相等等运算,主要有以下8个:
equal:两容器元素是否都相同
includes:是否是包含关系
lexicographical_compare:比较两个序列
max:求最大值
max_element:返回最大值的iterator
min:求最小值
min_element:求最小值的iterator
mismatch:找到第一个不同的位置
集合算法
集合算法主要是集合上的一些运算,例如集合加法:并集,集合的减法:差集,还有交集。主要有以下4个:
set_union:并集
set_intersection:交集
set_difference:差集
set_symmetric_difference:对称差集
堆算法
堆算法,就是把容器当做堆去操作,主要算法函数只有以下4个:
make_heap:生成一个堆
pop_heap:出堆
push_heap:入堆
sort_heap:堆排序
本文来自博客园,作者:hugeYlh,转载请注明原文链接:https://www.cnblogs.com/helloylh/p/17209590.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)