【C++】泛型算法到定制操作

什么是算法

标准库中,算法都是独立于特定类型和容器的,这些算法都是通用的因此被称为泛型(generic),算法永远不会改变底层容器的大小。算法可能改变容器中保存的元素的值,也可能在容器中移动元素,但是永远不会直接添加或删除元素,算法对迭代器进行操作。
算法通常包括:

  • 只读算法
  • 写容器元素的算法
  • 重拍容器元素的算法

定制操作

除了一些基本的操作,我们还可以定义操作。

  • 向算法传递函数
    谓词的概念,算法调用函数参数的个数。
    lambda表达式,使用lambda表达式可以摆脱谓词的限制。lambda函数的捕获方式包括:按值、按引用和隐式捕获。
  • 参数绑定
    对于那种只在一两个地方使用的简单操作,lambda表达式是最有用的。如果我们需要在很多地方使用相同的操作,通常应该定义一个函数,而不是多次编写相同的lambda表达式。类似地,如果一个操作需要很多语句才能完成,通常使用函数更好。(注意lambda是“表达式”而不是函数)
    由于一些算法只接受固定谓词的函数,但是我们又想用函数这是我们可以使用标准库bind函数。
    • bind函数
      bind函数可以看作一个通用的函数适配器。

      基本上是一眼懂。

回调函数

原文地址:https://www.cnblogs.com/vrijheid/p/14621998.html