C++中  #include<algorithm>

algorithm意为"演算法",是C++的标准模版库(STL)中最重要的头文件之一,提供了大量基于迭代器的非成员模版函数,库中的算法主要分为4类:

非修改性顺序操作(Non-modifying sequence operations)
可变顺序操作(Mutating sequence operations)
排序和关系操作(Sorting and related operations)
C库算法(C library algorithms)

 
1.非修改性顺序操作(12个)

  1. 循环:对序列中的每个元素执行某操作 for_each()
  2. 查找:在序列中找出某个值的第一次出现的位置 find() 利用底层元素的等于操作符,对范围内的元   素与输入的值进行比较。当匹配时,结束搜索,返回该元素的一个 InputIterator 。
  3. 在序列中找出符合某谓词的第一个元素 find_if()
  4. 在序列中找出一子序列的最后一次出现的位置 find_end()
  5. 在序列中找出第一次出现指定值集中之值的位置 find_first_of()
  6. 在序列中找出相邻的一对值 adjacent_find()
  7. 计数:在序列中统计某个值出现的次数 count()
  8. 在序列中统计与某谓词匹配的次数 count_if()
  9. 比较:找出两个序列相异的第一个元素 mismatch()
  10. 两个序列中的对应元素都相同时为真 equal()
  11. 搜索:在序列中找出一子序列的第一次出现的位置 search()
  12. 在序列中找出一值的连续n次出现的位置 search_n()

2.可变顺序操作(27个)

  1. 复制:从序列的第一个元素起进行复制 copy()
  2. 从序列的最后一个元素起进行复制 copy_backward()
  3. 交换:交换两个元素 swap()
  4. 交换指定范围的元素 swap_ranges()
  5. 交换由迭代器所指的两个元素 iter_swap()
  6. 变换:将某操作应用于指定范围的每个元素 transform()
  7. 替换:用一个给定值替换一些值 replace()
  8. 替换满足谓词的一些元素 replace_if()
  9. 复制序列时用一给定值替换元素 replace_copy()
  10. 复制序列时替换满足谓词的元素 replace_copy_if()
  11. 填充:用一给定值取代所有元素 fill()
  12. 用一给定值取代前n个元素 fill_n()
  13. 生成:用一操作的结果取代所有元素 generate()
  14. 用一操作的结果取代前n个元素 generate_n()
  15. 删除:删除具有给定值的元素 remove()
  16. 删除满足谓词的元素 remove_if()
  17. 复制序列时删除具有给定值的元素remove_copy()
  18. 复制序列时删除满足谓词的元素 remove_copy_if()
  19. 唯一:删除相邻的重复元素 unique()
  20. 复制序列时删除相邻的重复元素 unique_copy()
  21. 反转:反转元素的次序 reverse()
  22. 复制序列时反转元素的次序 reverse_copy()
  23. 环移;循环移动元素 rotate()
  24. 复制序列时循环移动元素 rotate_copy()
  25. 随机:采用均匀分布来随机移动元素 random_shuffle()
  26. 划分:将满足某谓词的元素都放到前面 partition()
  27. 将满足某谓词的元素都放到前面并维持原顺序stable_partition()

3.排序和关系操作(27个)

  1. 排序:以很好的平均效率排序 sort()
  2. 排序,并维持相同元素的原有顺序 stable_sort()
  3. 将序列的前一部分排好序partial_sort()
  4. 复制的同时将序列的前一部分排好序 partial_sort_copy()
  5. 第n个元素 将第n各元素放到它的正确位置 nth_element()
  6. 二分检索 找到大于等于某值的第一次出现 lower_bound()
  7. 找到大于某值的第一次出现 upper_bound()
  8. 找到(在不破坏顺序的前提下)可插入给定值的最大范围 equal_range()
  9. 在有序序列中确定给定元素是否存在 binary_search()
  10. 归并:归并两个有序序列 merge()
  11. 归并两个接续的有序序列 inplace_merge()
  12. 有序结构上的集合操作 一序列为另一序列的子序列时为真 includes()
  13. 构造两个集合的有序并集 set_union()
  14. 构造两个集合的有序交集 set_intersection()
  15. 构造两个集合的有序差集 set_difference()
  16. 构造两个集合的有序对称差集(并-交) set_symmetric_difference()
  17. 堆操作:向堆中加入元素 push_heap()
  18. 从堆中弹出元素 pop_heap()
  19. 从序列构造堆 make_heap()
  20. 给堆排序 sort_heap()
  21. 最大和最小 两个值中较小的 min()
  22. 两个值中较大的 max()
  23. 序列中的最小元素 min_element()
  24. 序列中的最大元素 max_element()
  25. 词典比较 两个序列按字典序的第一个在前 lexicographical_compare()
  26. 排列生成器 按字典序的下一个排列 next_permutation()
  27. 按字典序的前一个排列 prev_permutation()

4.C库算法
   该头文件还包含了标准C头文件stdlib.h,大体相同。 只是出于与C兼容的目的,bsearch 和 qsort同时包含了C和C++的两个函数签名.
————————————————
版权声明:本文为CSDN博主「oreofilling」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38251358/article/details/113105746

C++中的algorithm 的头文件相关推荐

  1. C语言高级技巧-在Makefile中引用你的头文件

    在Makefile中添加头文 代码仓库:Makefile中添加头文件引用 我们常这样写C程序: #inlcude <stdio.h>int main(int argc, char *arg ...

  2. c语言中的stdbool.h头文件,【C语言】中的stdbool.h头文件

    C语言中的stdbool.h头文件 一.相关基础知识 二.具体内容 Win7下安装的VS2015中的stdbool.h的位置为: F:\Program Files (x86)\Microsoft Vi ...

  3. 在link.c中已经include了头文件了,为什么使用ld还无法识别mian和printf?

    链接器ld //link.c #include <stdio.h> #include <stdlib.h> int main() { printf("%f\n&quo ...

  4. gcc编译c文件中包含其他的头文件

    gcc编译c文件中包含其他的头文件时,需要将所包含的头文件和要编译的这个c文件放在同一目录下,否则会报错:

  5. Quartus和Modelsim中使用`include包含头文件的对比

    在Quartus建立的工程中包含有头文件,而该工程在Modelsim仿真时有时会报错. Quartus版本是Quartus Prime 17.1 Lite Edition:Modelsim版本是Mod ...

  6. linux与window中sleep函数的头文件

    windows下的Sleep函数,首字母为大写,声明在windows.h头文件中,其参数usigned long类型,为毫秒数,即Sleep(1)为睡眠1毫秒. linux下的sleep函数,首字母为 ...

  7. C++中对于类来说头文件(.h)和源文件(.cpp)都应该写些什么 (类的常规创建)

      头文件(.h): 写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等,但一般来说不写出具体的实现. 在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下 ...

  8. Visual C++中 #include stdafx.h 头文件的用法

    今天在做VC++实验时,总是出现莫名其妙的错误.比如说: unexpected end of file whilelooking for precompiled header directive 再比 ...

  9. 为什么我的程序中没有stdafx.h头文件?

    这是我的程序中出现的问题,stdafx.h头文件前的include下面有红色的波浪线.这个问题是我刚开始学习vs2010的时候出现的,到现在我才想着把它整理一下,虽然是小问题,但是还是值得注意一下.对 ...

最新文章

  1. 在Mac上控制Alt Delete-如何在Macbook上打开任务管理器
  2. 如何用java语言实现C#中的ref关键字(按引用传递参数)的效果
  3. mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
  4. mysql characteristic_MySQL存储过程定义中的特性(characteristic)的含义
  5. doxygen生成html文件,doxygen 的安装、配置、编译及使用(从源代码到文档)
  6. 拯救IT人的报表神器来了,不用写代码,还免费
  7. 分享时刻第二期:砍掉成本(1) 课后总结
  8. “老年”程序员带你用Python玩街霸,你的童年用编程实现也很简单
  9. php二分法 冒泡 快速排序,PHP 常见算法【冒泡排序, 快速排序, 插入排序, 取舍排序, 二分法查找, .】...
  10. Go语言基础练习题系列2
  11. 第1天线性表顺序存储
  12. 用Android studio搭建沃商店SDK任意支付的配置
  13. 字符串统计(2017)
  14. sw如何缩放装配体_SolidWorks大装配体技巧
  15. 文本溢出隐藏显示...和英文换行
  16. 修改服务器bi,修改 FineBI 配置参数
  17. XShell 下载 安装
  18. vue run dev报错 缺少package.json文件、missing dev 命令 解决办法
  19. 华为服务器如何通过bmc装系统,华为BMC管理模块介绍及指南
  20. 带你入门NoSQL(真的是太全了)

热门文章

  1. Web前端性能优化(一)
  2. 行为识别笔记:HOG,HOF与MBH特征
  3. LibreTranslate
  4. Revit 二次开发 HOF 方式调用transaction
  5. Visual Studio Professional 2015 激活密钥
  6. 每周学一点 egret(4):EUI
  7. 付费测算源码技术细节解析:使用Laravel框架实现的星座运势、塔罗牌、牛年运程、宝宝起名、月老姻缘、起名算命等多个功能模块
  8. python学习笔记8(元组、字符串)
  9. 金九银十,跳槽找工作的几点良心建议
  10. java基础:JDK的安装及设置环境变量