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++】C转C++学习记录.DAY3 -> 正文阅读

[C++知识库]【C++】C转C++学习记录.DAY3

引子

DAY3概括地对容器进行补充学习,包括它的类型和操作。之后总结了这两天刷题时用到的新的知识。
![在这里插入图片描述](https://img-blog.csdnimg.cn/caba9368bb764a53bee3b5b076d63b32.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATm9uZTA3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16

1.顺序容器

1.1顺序容器类型

类型详情见最上方思维导图,在此不过多赘述。

  1. string和vector将元素保存在连续的内存空间中,能够使用下标进行快速的随机访问,但是在中间添加或删除元素非常耗时。
  2. list和forward_list与上述互补,即令任何位置的添加和删除操作变得快速,但是不支持元素的随机访问。且forward_list没有size操作。
  3. deque与vector类似,但是它在两端的添加或删除操作很快。
  4. array的大小是固定的,不支持添加和删除操作。

1.2容器操作

常见操作详见DAY1,下面进行一些补充

成员含义
c.back()返回c中尾元素的引用
c.front()返回c中首元素的引用
a.swap(b) 等价于 swap(a, b)交换a和b的元素
c.emplace(inits)使用inits构造c中的一个元素
c.erase(args)删除args指定的元素
c.clear()删除c中的所有元素,返回void
c.pop_back()删除c中尾元素
c.pop_front()删除c中首元素
c.erase(p)删除迭代器p所指定的元素,返回一个指向被删元素之后元素的迭代器
c.erase(b, e)删除迭代器b和e范围内的元素,返回一个指向最后一个被删元素之后元素的迭代器
插入操作含义
c.push_front(t)在c的头部创建一个值为t或由args创建的元素
c.emplace_front(args)
c.insert(args)将args中的元素拷贝进c
c.insert(p, t)在迭代器p指向的元素之前创建一个值为t或由args创建的元素,返回指向新添加元素的迭代器
c.emplace(args)
c.insert(p, n, t)在迭代器p指向的元素之前插入n个值为t的元素,返回指向新添加的第一个元素的迭代器,若范围为空,则返回p
c.insert(p, b, e)将迭代器b和e指定的范围内的元素插入到迭代器p指向的元素之前,b和e不能指向c中的元素,返回指向新添加的第一个元素的迭代器,若范围为空,则返回p
c.insert(p, il)il是一个花括号包围的元素值列表,将这些定值插入到迭代器p指向的元素之前,返回指向新添加的第一个元素的迭代器,若范围为空,则返回p

注:

  • 所有容器都支持相等或不等运算符;
  • vector和string不支持push_front和emplace_front
  • forward_list不支持push_back和emplace_back
  • array不支持这些操作
  • 向一个vector、string和deque插入元素会使所有指向容器的迭代器、引用和指针失效。

迭代器:详见DAY2,其中,forward_list迭代器不支持递减运算符,并且DAY1中所列举的算术运算只能应用于string、vector、deque和array的迭代器。
迭代器范围:由一对迭代器表示,通常称为begin和end,迭代器范围中的元素包含begin所表示的元素以及begin和end之间所有的元素(end指向尾元素之后的位置),这种元素范围称为左闭合区间。
因此可以用如下的代码用循环来处理一个元素范围:

while(begin != end){
	*begin = val;
	++begin;
}

关于list和forward_list的操作,可以看这篇博客https://blog.csdn.net/u013006553/article/details/78158717

1.3容量

操作含义
c.resize(n)调整c的大小为n个元素
c.resize(n, t)调整c的大小为n个元素, 任何新添加的元素都初始化为值t
c.capacity()不重新分配内存空间的话,c可以保存多少元素
c.reserve(n)分配至少能容纳n个元素的内存空间

2.容器适配器

除了顺序容器,标准库还定义了三个顺序容器适配器:栈适配器stack、队列适配器queue和priority_queue。

栈适配器新操作含义
s.pop()删除栈顶元素
s.push(item)压栈
s.top()返回栈顶元素
队列适配器新操作含义
q.pop()返回queue的首元素或priority_queue的最高优先级的元素
q.front()返回首元素或尾元素
q.back()只适用于queue
q.top()返回最高优先级元素,只适用于priority_queue
q.push(item)在queue末尾或priority_queue中恰当的位置创建一个元素

3.关联容器

联容器中的元素是根据关键字储存的,支持普通容器操作,但是不支持顺序容器位置相关的操作。
具体内容将在DAY4中更新。

4.intersect()求交集

c=intersect(a,b)找出向量a与b的相同元素,并按升序返回到c中。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:22:53  更:2022-04-18 17:23:36 
 
开发: 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/24 0:14:32-

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