C++ STL集合

STL六大组件

容器:

各种数据结构,如vecor,list,deque,set,map等,用来存放数据,从实现角度来看,STL容器是一种class template

C++ STL(容器:vector):https://blog.csdn.net/qq_41605114/article/details/104945461

C++ STL(容器:string类):https://blog.csdn.net/qq_41605114/article/details/104938665

C++ STL(容器:deque&stack&queue&map/multimap):https://blog.csdn.net/qq_41605114/article/details/105023835

C++ STL(容器:list&set):https://blog.csdn.net/qq_41605114/article/details/105032788 

算法:

各种常用的算法,如sort,find,copy,for_each.从实现角度来看,STL算法是一种function template

算法的第三个参数大部分都是函数对象或者函数指针

常用算法:

C++ STL——常用算法:https://www.cnblogs.com/laizhenghong2012/p/11785884.html

迭代器:

扮演了容器算法之间的粘合剂,共五种类型,从实现角度来看,STL迭代器是一种重载多种运算符的function template。所有STL容器都附带有自己专属的迭代器,只有容器的设计者才知道如何遍历自己的元素。

原生指针(native pointer)也是一种迭代器。

扫描二维码关注公众号,回复: 10148584 查看本文章

C++迭代器的使用和操作总结https://www.cnblogs.com/maluning/p/8570717.html

仿函数:

行为类似函数,可作为算法的某种策略,从实现角度来看,仿函数是一种重载了operator()的class或者class template

C++ STL仿函数适配器:https://blog.csdn.net/qq_41605114/article/details/105068323 

适配器:

一种用来修饰容器或者仿函数或迭代器接口的东西

空间配置器:负责空间的配置与管理,从实现角度看,配置器是一个实现了动态空间配置,空间管理,空间释放的class template

STL优点

  • 是C++的一部分,因此不用额外安装什么,它被内建在你的编译器之内。
  • STL的一个重要特性是将数据和操作分离。数据由容器类别加以管理,操作则又可定制的算法定义。迭代器在两者之间充分充当“粘合剂”,以使算法可以和容器交互运作
  • 程序员可以不用思考STL具体的实现过程,只要能够熟练使用STL就ok了,这样他们就可以把精力放在程序开发的别的方面。
  • STL具有高可重用性,高性能,高移植性,跨平台的优点
  • 高可重用性:STL中几乎所有代码都采用了模板类和模板函数,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
  • 高性能:如map可以高效地从十万条数据中查询到指定记录,因为map是采用红黑树的变体实现的
  • 高移植性:项目A上用STL编写的模块,可以直接移植到项目B上。
发布了85 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41605114/article/details/104937579