IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> C++顺序容器一览 -> 正文阅读

[系统运维]C++顺序容器一览

名称特点
vector可变大小数组。支持快速随机访问,在尾部之外的位置插入或删除元素可能很慢
deque双端队列。支持快速随机访问。在头尾插入、删除速度很快
list双向链表。只支持双向顺序访问。在list中任何位置进行插入、删除操作都很快
forward _list单向链表。只支持单向顺序访问。在链表任何位置进行插入、删除操作速度都很快
array固定大小数组。支持快速随机访问。不能添加或删除元素
string与vector相似的容器,但专门用户保存字符。随机访问快。在尾部插入、删除速度快

1.各顺序容器支持方法见下表(未打勾的为不支持)

方法vectordequelistforward_listarraystring解释
::append
::assign
::at容器中的第几个元素
::back
::begin
::capacity
::cbegin
::cend
::clear清空容器
::compare
::copy
::crbegin
::crend
::c_str
::data
::emplace
::emplace_back
::emplace_front
::empty判断容器是否为空,如果为空,返回0,否则返回非0
::end
::erase
::fill
::find
::find_first_not_of
::find_fisrt_of
::find_last_not_of
::find_last_of
::front
::get_allocator
::insert
::length
::max_size
::merge
::operator+=
::operator=
::operator[]
::pop_back
::pop_front
::push_back
::push_front
::rbegin
::rend
::remove
::remove_if
::replace
::reserve
::resize
::rfind
::shrink_to_fit
::size返回容器的大小
::substr
::sort
::swap
::splice
::unique

2.如何选择容器?

1>除非你有很好的理由选择其他容器,否则应使用vector

2>如果你的程序有很多小的元素,且空间的额外开销很重要,则不要使用list或forward_list

3>如果程序要求随机访问元素,应使用vector或deque

4>如果程序要求在容器的中间插入或删除元素,应使用list或forward_list

5>如果程序需要在头尾位置插入或删除元素,但不会在中间位置进行插入或删除操作,则使用deque

6>如果程序只有在读取输入时才需要在容器中间位置插入元素,随后需要随机访问元素,则

6.1>首先,确定是否真的需要在容器中间位置添加元素。当处理输入数据时,通常可以很容易地在vector追加数据,然后再调用标准库的sort函数

6.2>如果必须再中间位置插入元素,考虑在输入阶段使用list,一旦输入完成,将list中的内容拷贝到一个vector中

7>如果你不确定应该使用哪种容器,那么可以在程序中只使用vector和list公共的操作:迭代器,不适用下标操作,避免随机访问。这样,在必要时选择使用vector和list都很方便

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 12:23:43  更:2021-12-05 12:25:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:14:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码