STL 复习要点

顺序容器:vector, list, deque, string, array 

关联容器:set, unordered_set, map, unordered_map

适配器:stack, queue

C++ STL总结

  • STL概述

STL (Standard Template Library, 标准模板库) 是惠普实验室开发的一系列软件的统称。主要核心分为三大部分:容器(container)、算法(algorithm)和迭代器(iterator),另外还有容器适配器(container adaptor)和函数对象(functor)等其它标准组件。

  • 容器:

顺序容器:

名称

特性

vector

模拟的数据结构式动态数组,在内存中是连续储存的,支持随机存取,支持在尾部快速插入和删除元素,搜索速度较慢

deque

称为双端队列,在内存中的储存方式是小片连续,每片之间用链表连接起来,支持随机存取,支持在头部和尾部快速插入和删除元素,搜索速度较慢

list

称为双向链表,在内存中的储存是不连续的,每个元素的内存之间用指针相连,不支持随机存取(因为要从首或尾遍历至指定位置),但是支持在任意位置快速插入和删除元素,搜索速度最慢,扩展内存时无需复制和拷贝原元素

array

称为静态数组,在内存中是连续储存的,支持随机存取,不支持插入或删除元素

forward_list

称为前向链表,在内存中的储存是不连续的,同list一样支持在任意位置快速插入和删除元素,不支持随机存取,搜索速度也较慢,与list最大的区别在于其只能从头部遍历至尾部,不能反向遍历,因此没有保存后向指针,比list更省内存,插入和删除元素比list稍慢。

注:红色加粗的容器为C++11标准中新增的

关联式容器:

名称

特性

set

以红黑树实现,内存中是不连续储存的,保存的是元素是唯一的键值且不可变,排列的方式根据指定的严格弱序排列,不支持随机存取,搜索速度较快

multiset

与set基本一致,差别就在于允许保存重复键值

map

同样以红黑树实现,保存的元素是一个pair类型{key, value},每个键值对应一个值,且键值唯一不可变,键值的排列方式根据指定的严格弱序排列,支持用key进行随机存取,搜索速度较快

multimap

与map基本一致,差别在于键值可以重复

 

名称

特性

unordered_set

以哈希表实现,内存中是不连续储存的,保存的是元素是唯一的键值且不可变,无序的排列方式,

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值