zoukankan      html  css  js  c++  java
  • 【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。



  • 相关阅读:
    PAT 1088 三人行
    memset和memcpy
    算法训练 结点选择
    算法训练 K好数
    算法训练 最大最小公倍数
    算法训练 区间k大数查询
    算法训练 Eurodiffusion
    Kubernetes Device Plugins
    Kubeadm and Kops
    Go语言包管理工具Glide
  • 原文地址:https://www.cnblogs.com/ruan875417/p/4495568.html
Copyright © 2011-2022 走看看