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++学习 二十、STL(3)序列容器 -> 正文阅读

[数据结构与算法]C++学习 二十、STL(3)序列容器

C++学习 二十、STL(3)序列容器

前言

本篇继续学习C++中的STL,序列容器。

序列容器类型

序列容器,一般是通过类似数组的形式,按照次序存储某种类型的数据,包括:

  • array<T, N>数组容器,类似于普通数组,存储N个T类型的数据,不能增加或者减少元素,只能修改元素的值。
  • vector<T>向量容器,长度可变,当内存不足时会自动申请分配新内存。可以在尾部高效增加或者删除元素,也可以在任意位置低效插入和删除元素。
  • deque<T>双端队列容器,可以在头部和尾部高效增删元素,也可以在任意位置低效插入和删除元素。
  • list<T>双向链表容器,可以在容器任何位置高效插入和删除元素,但访问元素时需要从第一个或最后一个元素开始沿着迭代器访问,效率较低。
  • forward_list<T>单向链表,与list<T>类似,但其迭代器是前向访问的,也就是只能从第一个元素开始沿着迭代器访问。
  • queue<T>队列容器,先进先出,只能在尾部添加元素,在头部删除元素,只能访问头部和尾部元素,没有迭代器。
  • stack<T>栈容器,先进后出,只能向栈顶添加或者弹出元素,只能访问栈顶元素,同样没有迭代器。

序列容器方法

序列容器有许多共通的方法,也有一些独特的方法。

以vecctor为例:

begin(),rbegin(),cbegin(), crbegin(),end(),rend(),cend(),crend() # 返回迭代器,r表示反向,c表示常量

assign() # 把另一个容器中元素放到本容器中

operator=(),operator[] # 容器赋值,索引访问元素

size() # 元素个数

max_size() # 容器最大容量

capacity() # 当前容量

empty() # 判断是否是空容器

resize() # 改变容器长度

front(),back() # 返回第一个、最后一个元素的引用

at() # 使用边界检查的索引访问

push_back(), pop_back() # 从尾部添加/删除一个元素

insert(), erase() # 向某个位置插入或删除一段元素

clear() # 清空容器(但不回收空间)

swap() # 交换两个容器的所有元素

data() # 返回容器第一个元素的指针

begin(), end()这些方法,没有迭代器的容器自然就不具备。

assign()把其它容器的元素替换自身,但array<T>数组容器是定长的,自然没有该方法,resize(),push_back(),pop_back(),insert(),erase(),clear()这些方法同理。

全部记住这些方法比较麻烦,一般IDE都会有提示。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:43:30  更:2022-03-16 22:51:46 
 
开发: 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/26 11:53:46-

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