C++ STL—容器

容器用于存储不同类型的数据。

1. 容器类型

STL中包括序列式和关联式两种容器:

类型容器名说明
序列式容器vector (向量)相当于数组,可动态构建,支持随机访问,无头插和尾插,仅支持inset插入,数组可变大小
deque (双端队列)

支持头插、删,尾插、删。

随机访问比vector容器慢,但对于首尾的数据操作比较方便

list (双向循环列表)对于任意位置的插入和删除都很快,操作过后,指针、迭代器、引用都不会失效
forward_list (单向链表)只支持单向访问,在链表的任何位置进行插入/删除操作都非常快
array (固定数组)vector的底层即为array数组,它保存了一个以严格顺序排列的特定数量的元素
关联式容器set/multiset (集合/多重集合)

对于set:集合有互斥性。使用insert插入元素时,已插入过的元素不可重复插入。集合内的元素默认按照升序进行排序。

对于multiset:可插入多个重复的元素,多重集合内的元素默认仍按照升序排列

map/multimap (映射/多重映射)

二元关联容器(在构造时需要写两个参数类型,key值和value值)

因为有两个参数,因此在插入元素的时候需要配合对组pair进行插入。

 2. 容器的使用场景

容器名使用场景
vector记录一组数据
deque需要在一组数据头尾操作
forward_list/list需要在一组数据中间操作
set对固定类型数据的查找(例如查找学号对应的成绩)
map对多个不同类型数据的查找(例如查找手机号对应的身份证号、姓名、家庭住址等)
  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值