• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2020-05-02 08:15 Aet 隐藏边栏 |   抢沙发  4 
文章评分 1 次,平均分 5.0

6大组件

  • 容器
    • vector
    • list
    • deque
    • set
    • map
    • 从实现的角度,STL容器是class template
  • 算法
    • sort
    • search
    • copy
    • ...
    • 从实现的角度,STL算法是function template
  • 迭代器
    • 容器与算法之间的“胶合剂”
    • 所谓的“泛型指针”
    • 所以容器都附带有自己的专属迭代器
    • 从实现的角度,STL迭代器是讲operator*,operator->,operator++,operator--等指针相关操作予以重载的calss template
  • 仿函数
    • 行为类似函数
    • 可作为算法的某种策略
    • 一般函数指针可视为侠义的仿函数
    • 从实现的角度,仿函数是重载了operator()的class或者class template
  • 配接器
    • queue
    • stack
    • 用来修饰容器、仿函数、迭代器接口的东西
  • 配置器
    • 负责空间配置与管理
    • 从实现的角度,配置器是一个实现了动态空间配置、空间管理、空间释放的class template

组态

简介

  • stl_config.h
  • 不同的编译器对于C++语言的支持程度是不一样的,为了具备广泛移植能力,SGI STL定义了这个环境组态文件
  • 其中的许多宏定义,在预编译的时候,通过这些宏定义来编译出对应平台的程序

内容

__STL_STATIC_TEMPLATE_MEMBER_BUG

如果编译器不支持static members of template classes

则定义__STL_STATIC_TEMPLATE_MEMBER_BUG

__STL_CLASS_PARTIAL_SPECIALIZATION

如果编译器支持局部特殊化的类模板

则定义__STL_CLASS_PARTIAL_SPECIALIZATION

__STL_FUNCTION_TEMPL_PARTIAL_ORDER

如果编译器支持部分排序函数模板

则定义__STL_FUNCTION_TEMPL_PARTIAL_ORDER

__STL_EXPLICIT_FUNCTION_TMPL_ARGS

如果编译器支持显示调用模板函数的模板参数

则定义__STL_EXPLICIT_FUNCTION_TMPL_ARGS

__STL_MEMBER_TEMPLATES

如果编译器支持类模板成员

则定义__STL_MEMBER_TEMPLATES

__STL_LIMITED_DEFAULT_TEMPLATES

如果编译器不能根据前一个模板参数设定后面的默认模板参数

则定义__STL_LIMITED_DEFAULT_TEMPLATES

__STL_NON_TYPE_TMPL_PARAM_BUG

如果编译器处理模板函数的non-type模板参数类型推断有困难

则定义__STL_NON_TYPE_TMPL_PARAM_BUG

__STL_NULL_TMPL_ARGS

__STL_TEMPLATE_NULL

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-27
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享