小言_互联网的博客

[STL]六大组件介绍(目录 全)

342人阅读  评论(0)

一般介绍

      STL(Standard TemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard
Library)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。
      从逻辑层次来看,在STL中体现了泛型化程序设计的思想(generic programming),引入了诸多新的名词,比如像需求(requirements),概念(concept),模型(model),容器(container),算法(algorithmn),迭代子(iterator)等。与OOP(object-oriented programming)中的多态(polymorphism)一样,泛型也是一种软件的复用技术;
      从实现层次看,整个STL是以一种类型参数化(type parameterized)的方式实现的,这种方式基于一个在早先C++标准中没有出现的语言特性–模板(template)。如果查阅任何一个版本的STL源代码,你就会发现,模板作为构成整个STL的基石是一件千真万确的事情。除此之外,还有许多C++的新特性为STL的实现提供了方便;

STL的六大组件

      容器(Container),是一种数据结构,如list,vector,和deques
,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器;
      迭代器(Iterator),提供了访问容器中对象的方法。例如,可以使用一对迭代器指定list或vector中的一定范围的对象。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器也可以是那些定义了operator*()以及其他类似于指针的操作符地方法的类对象;
      算法(Algorithm),是用来操作容器中的数据的模板函数。例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象,函数本身与他们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用;
      仿函数(Function object,仿函数(functor)又称之为函数对象(function
object),其实就是重载了()操作符的struct,没有什么特别的地方
      迭代适配器(Adaptor)一种用来修饰容器或者仿函数或迭代器接口的东西。
      空间配制器(allocator)其中主要工作包括两部分1.对象的创建与销毁 2.内存的获取与释放

笔记目录

  1. [STL]String基本用法解释+代码实例
  2. [STL]Vertor基本用法解释+代码实例
  3. [STL]deque基本用法及和Vertor的对比
  4. [STL]stack和queue基本API用法及比对
  5. [STL]list基本用法解释
  6. [STL]set/multiset常见用法实例+pair对组概念
  7. [STL]map/multimap基本用法及自定义排序
  8. [STL]深拷贝和浅拷贝问题(内存泄露+内存未释放+调用拷贝构造的五种情况)
  9. [STL]容器小结+函数对象+谓词+内建函数对象+函数对象配置器+算法(汇总)

参考资源

1 黑马程序员
2 《C++标准库 - 侯捷》中的 5.2 节-容器


转载:https://blog.csdn.net/weixin_44972997/article/details/115364329
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场