C++ STL 容器 (慢慢完善)

C++ STL(Standard Template Library)由以下几部分组成:

  • 容器(Containers):包括 vector、list、deque、set、map 等数据结构,用于存储和管理数据。

  • 迭代器(Iterators):用于遍历容器中的元素。

  • 算法(Algorithms):包括排序、查找、合并等常用算法,用于对容器中的元素进行操作。

  • 函数对象(Function Objects):类似于函数的对象,可重载运算符,用于算法中的比较和操作。

  • 适配器(Adapters):包括迭代器适配器和容器适配器,用于在不同的容器和迭代器间进行适配和转换。

STL 的设计思想是将数据结构和算法分离,提供了一种高效、灵活和通用的程序设计方法,为 C++ 程序员提供了丰富的工具和语言支持。

容器(Containers)

C++ STL(Standard Template Library)中的容器(Containers)由以下几部分组成:

  • 序列式容器(Sequence Containers):包括 vector、deque、list、array、forward_list,其中 vector 和 deque 支持快速的随机访问,list 和 forward_list 支持快速的插入和删除操作。

  • 关联式容器(Associative Containers):包括 set、multiset、map 和 multimap,其中 set 和 map 中的元素按照一定的顺序排列,multiset 和 multimap 中可以有重复的元素。

  • 容器适配器(Container Adapters):包括 stack、queue 和 priority_queue,是在序列式容器基础上提供的一种封装,使得容器具有栈、队列和优先队列的行为特征。

容器提供了一种方便、高效、安全的数据管理方式,可以满足不同的需求,提高程序的可靠性和可维护性。

vector
vector 是一个动态数组,可以在末尾快速添加和删除元素,支持随机访问。但是在中间插入或删除元素的效率较低。

deque
deque(双端队列)是一个双向队列,支持在两端快速添加和删除元素,但是随机访问的效率较低。

list
list 是一个双向链表,可以在任意位置快速添加和删除元素,但是随机访问的效率较低。

forward_list
forward_list 是一个单向链表,和 list 相比,它占用更少的内存,但是只支持单向遍历。

set
set 是一个有序集合,其中的元素按照键值排序,不允许重复元素。

multiset
multiset 和 set 类似,但是允许重复元素。

map
map 是一个有序映射,其中的元素按照键值排序,每个键值只能对应一个元素。

multimap
multimap 和 map 类似,但是每个键值可以对应多个元素。

unordered_set
unordered_set 是一个无序集合,其中的元素不按照键值排序,不允许重复元素。

unordered_multiset
unordered_multiset 和 unordered_set 类似,但是允许重复元素。

unordered_map
unordered_map 是一个无序映射,其中的元素不按照键值排序,每个键值只能对应一个元素。

unordered_multimap
unordered_multimap 和 unordered_map 类似,但是每个键值可以对应多个元素。
总之,不同的容器各有其优势和适用场景,需要根据具体的需求来选择使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值