STL算法

Posted supremegis-developer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL算法相关的知识,希望对你有一定的参考价值。

算法:以有限的步骤,解决逻辑或者数学上的问题。

  • 特定的算法往往搭配特定的数据结构,特定的数据结构是为了实现某种特定的算法。
  • 关联式容器:与特定数据结构相关的算法。
  • 泛型:不依赖于具体类型,由模板实现。
  • 算法的泛型化:把操作对象的型别加以抽象化,把操作对象的标示法和取间目标的移动行为抽象化,整个算法就能在一个抽象层面上工作了。
  • 泛型的算法可以不依赖于容器的具体类型,使得算法能作用于不同类型的容器上,实现代码复用。
  • 迭代器是一种行为类似指针的对象,也可视为一种智能指针。
  • 迭代器作为一种访问容器中元素的方式,具有相对统一的接口,是一种对容器元素访问的抽象。
  • 算法通过迭代器提供的功能,实现对容器中元素的操作,而无需考虑容器的具体细节。使得算法无需依赖特定容器,降低算法与容器间的耦合,两者间关系如下图。
graph LR algorithm --iterator--> containers containers --- vector containers --- array containers --- list containers --- ... containers --- deque containers --- set containers --- map

STL算法主要分为以下几类:

  • 数值算法 numeric
  • 基础算法 algobase
  • 集合相关算法 set
  • 堆算法 heap
  • 数据处理算法

以上是关于STL算法的主要内容,如果未能解决你的问题,请参考以下文章

STL常用算法的使用与实现举例

STL常用算法的使用与实现举例

STL之算法总结

STL中的查找算法

[C++ STL] 常用算法总结

万字长文 | STL 算法总结