9-1 顺序容器概述
顺序容器的类型
顺序容器类型 | 描述 |
---|---|
vector | 可变长数组;支持随机访问;在尾部之外的位置插入元素较慢 |
string | 和vector类似,但是专门用来保存字符;随机访问;尾部插入块 |
list | 双向链表;顺序访问;在任何位置插入都很快 |
forward_list | 单向链表;单向顺序访问;在任何位置插入都很快 |
deque | 双端队列;支持随机访问;在头尾插入元素很快 |
支持随机访问,头(尾)插入:vector,string,deque
只支持顺序访问,但插入快速:list,forward_list
以下是一些选择容器的基本原则
- 除非你有很好的理由选择其他容器,否则应使用vector。
- 如果程序要求随机访问元素,应使用vector或deque。
- 如果程序要求在容器的中间插入或删除元素,应使用list或forward_list。如果程序需要在头尾位置插入或删除元素,但不会在中间位置进行插入或删除操作,则使用deque。
- 如果你的程序有很多小的元素,且空间的额外开销很重要,则不要使用list或forward_list。
- 如果程序只有在读取输入时才需要在容器中间位置插入元素,随后需要随机访问元素,则
- 首先,确定是否真的需要在容器中间位置添加元素。当处理输入数据时,通常
可以很容易地向vector追加数据,然后再调用标准库的sort函数(我们将在10.2.3节介绍sort(第343页))来重排容器中的元素,从而避免在中间位置添加元素。 - 如果必须在中间位置插入元素,考虑在输入阶段使用list,一旦输入完成,将
list中的内容拷贝到一个vector 中。
- 首先,确定是否真的需要在容器中间位置添加元素。当处理输入数据时,通常
总结:
能用vcetor就用vector,除非需要频繁地在中间插入元素
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用