标准模板库STL

容器:管理特定类型的对象的集合。

迭代器:迭代对象集合的元素。屏蔽了底层容器的实现。

算法:操作对象集合的元素,查找,排序,修改等。算法不直接操作容器,通过迭代器操作。

STL基于数据和操作分离的原则,容器管理数据,算法操作数据,两者通过迭代器结合。


STL组件


容器

顺序容器

array,vector,deque,list,forward_list(一般用数组或链表实现)

关联容器

有序的,set,multiset,map,multimap,在逻辑上可认为是顺序容器,一般用排序二叉树实现

无序(关联)容器

unsordered_set,unordered_multiset,unsortered_map,unsortered_multimap,一般用hash表实现

vector

动态数组,支持随机访问,在尾后添加删除元素较快,在中间添加和删除元素较慢,可能需要改变容器的容量。

size() is provided for any container class except singly linked lists (class forward_list).

deque(读作check)

双端队列,可在两端增长的动态数组,在首尾插入比较快,在中间插入比较慢。

array

固定大小的数组,只可改变元素的值,在创建的时候指定大小。支持随机访问。默认以类型的默认构造函数出初始化,内置类型初始值未定义。创建时需指定大小,作为类型的一部分。

list

双向,每个元素保存前驱和后继的链接,插入和删除较快,不支持随机访问。

forward_list

单向,每个元素只有后继的链接,不支持push_back,size。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.顺序容器 顺序容器是将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。标准库常用顺序容器如下:...
    Mr希灵阅读 825评论 0 4
  • STL其实也是模版,它的类型参数也包含其他模版,一般来讲它的内存分配对象就是另一个模版。如下图所示:
    Stroman阅读 202评论 0 0
  • STL概览 在进入STL的世界之前,我们先对其中的主要组件做一个鸟瞰:先来一张层次图: 如果觉得层次图看不清的话,...
    Jtag特工阅读 1,287评论 0 4
  • C++ 标准模板库(STL) 作者:AceTan,转载请标明出处! 0x00 何为STL## STL(Standa...
    AceTan阅读 5,111评论 3 44
  • 最开始并不是通过读书喜欢上《老人与海》的,而是动画,那时我一直迷恋动漫,现在迷恋依旧。我想,到老我依然还是会喜欢动...
    幸存者XCZ阅读 377评论 0 1

友情链接更多精彩内容