一、算法

算法是以函数模板的形式实现的。常用的算法涉及到比较、交换、查找、搜索、复制、修改、移除、反转、排序、合并等等。
算法并非容器类型的成员函数,而是一些全局函数,要与迭代器一起搭配使用。
算法的优势在于只需实作一份,可以适应所有的容器,不必为每一种容器量订制。也可以与用户定义的容器搭配。

算法尾词:

_if

比如find(按某个值来查找),find_if(按某个条件来查找)

_copy

这个尾词用来表示在算法中,元素不光被操作,还会被复制到目标区间。比如reverse、reverse_copy

二、算法分类

1、非变动性算法既不改变元素次序,也不改变元素值。

2、变动性算法,要么直接改变元素值,要么就是在复制到另一个区间的过程中改变元素值。如果是第二种情况,原区间不会发生变化

3、移除性算法是一种特殊的变动性算法。移除性算法是在一区间内移除某些元素,这些算法并不能改变元素的数量,它们只是以逻辑上的思考,将原本置于后面的“不需要移除元素”向前移动,覆盖那些被移除元素而已。它们都返回新区间的逻辑终点。移除性算法也可以在复制的过程中执行移除。注意,目标区间不能是关联式容器。

4、变序性算法改变元素次序,但不改变元素值。这些算法不能用于关联式容器,因为关联式容器中,元素有固定的次序。

5、排序算法,排序算法是一种特殊的变序算法。但比一般的变序性算法更复杂,花费更多的时间

6、已序区间算法,一般来说这些算法的结果,仍然是已序的。

7、用来处理数值的算法,需要加上头文件 #include<numeric>

在后面的文章中将对7种算法分别举一些例子来示例。

参考:

C++ primer 第四版
Effective C++ 3rd
C++编程规范

算法简介、7种算法分类相关推荐

  1. DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释)、案例应用之详细攻略

    DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释).案例应用之详细攻略 相关文章:DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类 ...

  2. Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程

    Interview之AI:人工智能领域岗位求职面试-人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础.ML算法简介.DL算法简介)来理解技术交互流程 目录 一.A ...

  3. DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理

    DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理 目录 BP类神经网络理解 1.信号正向传播FP 2.误差反向传播BP+GD B ...

  4. 最短路算法(3种算法)

    1.最短路 最短路,顾名思义,最短的路径.我们把边带有权值的图称为带权图.边的权值可以理解为两点之间的距离.一张图中任意两点之间会有不同的路径相连.最短路径就是指连接两点的这些路径中最短的一条.我们有 ...

  5. 人工神经网络算法与机器算法算两种算法吗

    人工神经网络的特点有哪些 人工神经网络的特点和优越性,主要表现在三个方面:第一,具有自学习功能. 例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习 ...

  6. 蚁群算法,PSO算法以及两种算法可以融合的几种方法

    蚁群算法(ACO)是受自然界中蚂蚁搜索食物行为的启发,是一种群智能优化算法.它基于对自然界真实蚁群的集体觅食行为的研究,模拟真实的蚁群协作过程.算法由若干个蚂蚁共同构造解路径,通过在解路径上遗留并交换 ...

  7. 【基础智能优化算法】68种算法大合集+matlab源码+参考资料+永久更新

    目前已更新68种基础算法+matlab源码+参考资料 !!!!!! 2-蝴蝶优化算法 3--海洋捕食者算法 4-鲸鱼优化算法 5-乌燕鸥优化算法 6-灰狼优化算法 7-黑猩猩优化算法 8-原子搜索算法 ...

  8. 算法简介及计算机算法基础——算法学习(四)

    文章目录 关注算法缘由 描述计算机算法基础 描述运行时间 循环不变式 参考文档 接下来的算法学习内容主要根据<程序员必读经典(算法基础+计算机系统)>一书而写,作为读书笔记,感兴趣的可以见 ...

  9. ML之LiR之PLiR:惩罚线性回归PLiR算法简介、分类、代码实现之详细攻略

    ML之LiR之PLiR:惩罚线性回归PLiR算法简介.分类.代码实现之详细攻略 目录 PLiR算法简介 PLiR算法分类 PLiR算法代码实现 PLiR算法简介 更新-- PLiR算法分类 1.RiR ...

  10. Minimax 和 Alpha-beta 剪枝算法简介,及以此实现的井字棋游戏(Tic-tac-toe)

    前段时间用 React 写了个2048 游戏来练练手,准备用来回顾下 React 相关的各种技术,以及试验一下新技术.在写这个2048的过程中,我考虑是否可以在其中加入一个 AI 算法来自动进行游戏, ...

最新文章

  1. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用48
  2. Linux一些经典书籍
  3. android java 调用js,Android中Java和JavaScript交互实例
  4. Asp.net页面和Html页面之间的关系
  5. 退出登录后点返回键 是登录状态_看了这50条登录的测试点,你还敢说测试很容易吗...
  6. 计算机考研408试题及答案,2015年计算机专业408考研试题及答案
  7. 紫米创始人张峰兼任小米笔记本总经理
  8. php 的cookie设置时间,php cookie时间设置的方法
  9. kettle 连接 Oracle 异常
  10. 最简单的基于FFmpeg的移动端例子:IOS 视频转码器
  11. tshark/wireshark/tcpdump实战笔记(更新中...)
  12. 拉普拉斯方程续有限差分法
  13. 孙式无极桩站桩要领--林泰年
  14. 基于C语言设计的一个医院叫号系统
  15. 凸集函数之基本属性和示例
  16. 小冰的忍者团队,她在日本开启了怎样一种商业模式?
  17. 不要盲目满足用户需求,造成过度设计
  18. 微信小程序开发-微信支付功能【WxMaService 获取openid,WxPayService建微信订单,接收微信支付异步通知回调方法,附有完整前后端代码】
  19. 这些食物让人越吃越聪明!
  20. QT中获取选中的radioButton的两种方法

热门文章

  1. boost::function_types::components用法的测试程序
  2. boost::core::bit_width的测试程序
  3. Boost:演示了black-scholes option 定价内核
  4. Boost:基于Boost的stream流服务器
  5. ITK:应用Cos图像滤镜
  6. ITK:为每个像素添加常量
  7. ITK:Mersenne Twister随机数生成器
  8. DICOM:标准内容概述
  9. VTK:可视化算法之HeadSlice
  10. VTK:结构化网格之StructuredGridOutline