【STL源码剖析读书笔记】【第1章】STL概论与版本简介

一、STL六大组件:

1、容器(containers):各种数据结构,如:vector、list、deque、set、map,主要用来存放数据。

2、算法(algorithms):各种常见算法,如:sort、search、copy、erase......

3、迭代器(iterators):扮演算法和容器中的胶合剂,是“泛型指针”。所有STL容器均有自己专属的迭代器。

4、仿函数(functors):行为类似函数,可作为算法的某种策略。仿函数是一种重载了operato()的class或classtemple。

5、配接器(adapters): 修饰容器、仿函数、迭代器接口的东西。

6、配置器(allocators):负责空间配置和管理,配置器是一个实现了动态空间配置、空间管理、空间释放的class template.

二、STL六大组件的交互关系

Container通过Allocator取得数据储存空间,Algorithm通过Iterator存取Container内容,Functor可以协助Algorithm完成不同的策略变化,Adapter可以修饰或套接Functor。

图片来自《STL源码剖析》

三、STL的编译器组态

不同的编译器对C++语言的支持程度不尽相同。为了具备广泛移植能力,SGI STL定义了一个环境组态文件<stl_config.h>。<stl_config.h>定义了许多常量,标示某些组态是否成立。如__STL_STATIC_TEMPLATE_MEMBER_BUG用来标识当前编译器无法处理staic members of template classes。



转载于:https://www.cnblogs.com/ruan875417/p/4495568.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值