Lesson10---list

news2024/11/18 23:29:14

lesson18:

一、

1.list是一个XX链表(0:19:26)

2.链表里面,单独存储数据最适合的结构是XX(0:19:53)

3.list的任意位置插入删除的时间复杂度是O(N)吗?(0:20:20)

4.为什么list容量相关的接口这么少?(0:23:40)

5.emplace_back的功能和XX一样(0:24:7)

6.emplace_front的功能和XX一样(0:24:13)

7.范围for的底层就是XX(0:26:38)

8.为什么它没有find?(0:33:32)

9.insert(pos,30),插入后pos会失效吗?(0:37:45)

a.为什么?(0:38:20)
b.可以用pos对当前结点的值进行修改吗?(0:39:10)

10.erase(pos),删除后pos会失效吗?(0:42:35)

11.splice的作用(0:45:18)

a.转移所有的元素吗?(0:45:54~0:46:7)
b.举例理解(0:46:30~0:47:18) 

12.remove是删除所有的元素还是留一个元素?(0:48:40)

13.clear的作用(0:51:25)

14.unique的作用(0:52:4)

a.前提(0:52:9)
b.真要去重的话,会用unique吗?(0:53:27)

15.双向链表逆置的话,简单不?(0:54:34)

16.为什么list还要单独创建一个sort接口?(0:57:34)

a.如果我用算法库的sort会发生什么?(0:58:04)
b.链表的sort用的什么排序?
①可以用冒泡排序吗?(1:0:24)
②可以用插入排序吗?(1:0:40)
Ⅰ.单链表可以用插入排序吗?(1:0:50)
③它用的什么排序?(1:1:9)
Ⅰ.这种排序对数组的缺陷是什么?(1:1:34)
Ⅱ.对链表呢?(1:1:50)
c.N个数据需要排序,你会选择vector+算法sort还是list+sort?(1:3:29)
①验证(1:7:37)
②快排和归并的时间复杂度都是O(N*logN),所以它俩的结果几乎一样吗?(1:9:5)
③建议用链表排序吗?(1:10:28)
④list拷贝到vector排序后拷回list和list+vector比较效率(1:12:20)

17.merge的作用(1:13:10)

二、list的模拟实现

1.什么是link_type?(1:31:14)

2.get_node是什么?(1:33:34)

a.list_node_allocator::allocate是什么?(1:33:27)
①内存池申请的结点除了开辟空间外,调用了构造和析构函数吗?(1:33:44)
②如果内存不是来自new,而是来自内存池,我想初始化但是调不了构造函数,有办法让我调用构造函数吗?(1:34:45~1:35:25)
Ⅰ.销毁结点呢?(1:35:51)

三、结点的成员变量(1:37:45)

四、链表的成员变量

1.C++如何typedef结点名?(1:38:5)

2.成员变量里有哨兵卫吗?(1:38:27)

五、链表的构造函数

1.头节点怎么初始化?(1:39:20~1:39:50)

六、push_back

1.需要找到并定义尾结点tail吗?(1:43:25)

2.如何利用结点的构造函数创建新结点?(1:44:28~1:45:10)

a.那我要是不传参x,想让它默认给我生成一个,怎么修改构造函数?(1:45:30)

3.实现(1:46:50)

七、

1.能不能像string、vector那样用原生指针遍历链表?

a.node*解引用后是数据吗?(1:51:3)
b.node*++能到下一个结点吗?(1:51:55)
c.如何解决上面两个问题?(1:52:40~1:53:0)

2.建议把两个结点和链表两个类写成内部类吗?(1:54:10)

3.链表的迭代器是怎么typedef得来的?(1:56:15)

4.__list_iterator是什么?(1:56:45)

八、迭代器

1.list类如何使用迭代器?(2:2:8)

2.迭代器需要控制哪些行为?

a.第一个(2:5:30)

b.第二个(2:7:44)
c.第三个(2:9:30)

3.迭代器需要提供析构函数吗?(2:32:38)

九、begin(2:3:45)

十、end(2:3:45)

十一、operator!=

1.可以在__list_iterator类内部typedef吗?(2:5:58)

2.链表的迭代器比较是否相等,怎么比?(2:6:19)

3.it指向_node是用.还是->?(2:11:35)

十二、operator*

1.实现(2:8:20)

2.*it被转换成了XX(2:8:35)

十三、operator++

1.这是前置还是后置++?(2:9:40)

2.++到下一个结点的思路?(2:9:55)

3.实现(2:10:25)

4.这是赋值吗?(2:14:43)

list<int>::iterator it = it.begin();

5.后置++怎么和前置++区分?(2:35:8)

a.实现(2:35:30)
①为什么不写拷贝构造?(2:35:24)

十四、operator--

1.实现(2:35:50)

2.后置--的实现(2:36:10)

十五、

1.指针什么时候才用箭头->?(2:38:38)(2:39:15)

a.->是用来干嘛的?(2:39:18)

2.对于list<Pos> lt,怎么push_back?(2:41:10)

struct Pos
{
	int _a1;
	int _a2;
	Pos(int a1 = 0; int a2 = 0)
		:_a1(a1)
		, _a2(a2)
	{}
};

3.报错的原因(2:43:20)

a.解决方案?(2种)
①第一种(2:43:28)
②第二种(2:43:50)
③第三种(2:46:0)
Ⅰ.直接用it->是会报错的,需要XX(2:46:25)
b.如何实现重载->?(2:50:0)
①&(operator*())等价于XX(2:50:15)
②返回值是返回什么?(2:50:25)
c.严格来说,it->_a1其实等价于XX(2:51:20)
①it->转化成调用XX(2:51:40)
Ⅰ.返回值返回什么?(2:51:52)
Ⅱ.T*是结构体的XX(2:51:59)
Ⅲ.T*再加个XX就可以访问成员了(2:56:2)
②语法为了可读性,做了什么?(2:52:35)

4.如果我使用Func(lt),把对象传给函数去遍历,可以吗?(2:56:43)

a.为什么?(2:56:46~2:57:0)
b.怎么办?(2:57:5)
c.普通迭代器和const迭代器真正的区别在于是否可以修改数据,那么通过控制哪里可以起到控制是否能够交换数据?(2:59:0)
①返回值不同,可以构成重载吗?(2:59:41)
d.怎么解决?(2种)
①第一种(2:59:51~3:0:10)
②第二种(3:0:20~3:3:5)

5.怎么修改迭代器的typedef?(3:4:0)(3:5:27)

a.普通迭代器的begin和const迭代器的begin的区别?(3:4:31)

十六、insert

1.实现(3:12:15)

2.push_back怎么复用insert?(3:14:8)

十七、push_front

1.实现(3:14:35)

十八、erase

1.assert警告什么?(3:15:38)

2.实现(3:17:15)

十九、pop_back

1.实现(3:17:55)

二十、pop_front

1.实现(3:18:20)

二十一、find

1.为什么使用find函数前,要加一堆typedef?(3:23:40)

lesson19:

一、拷贝构造

1.编译器默认生成的拷贝构造是XX拷贝(0:3:32)

a.lt存的是什么?(0:3:54)
vector<int> lt;
b.浅拷贝拷的啥?(0:4:8)
c.a、b问题的可视化(0:4:45)

d.编译器默认生成的拷贝构造对内置类型XX,对自定义类型XX(0:5:13)
e.为什么没有崩溃?(0:7:58)
f.修改会导致崩溃吗?(0:9:22)

二、clear

1.clear和析构的区别(0:11:19)

2.删除节点的时候,除了用delete外,还有XX(0:12:34)

a.erase以后,节点所在的迭代器就失效了,怎么由该节点指向下一个节点?(0:12:55)

三、析构函数

1.实现(0:15:10)

四、拷贝构造

1.传统写法

a.思路(0:17:55)

2.现代写法

a.思路(0:18:13)
b.它只能传链表的迭代器区间来构造吗?(0:19:14)

①实现(0:22:0)
Ⅰ.push_back的前提(0:20:20)
Ⅱ.empty_init函数的实现(0:22:5)
Ⅲ.empty_init的作用(0:22:25)
c.实现(0:25:0)
①为什么都交换了,还要在交换前对this对象初始化?(0:31:44)

五、swap函数

1.链表的swap是在交换什么?(0:25:34)

2.实现(0:25:35)

六、operator=

1.实现(0:33:40)

七、

list lt;

1.可以这样写吗?(0:36:27)

2.类名是类型吗?(0:36:37)

3.什么是类型?(0:36:40)

4.在哪里的时候,类名可以当成是类型?(2处)

a.第一处(0:37:3)
b.第二处(0:37:19)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1076349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日leetcode_2441_对应负数同时存在的最大整数

Leetcode每日一题_2441_对应负数同时存在的最大整数 记录自己的成长&#xff0c;加油。 题目 解题 class Solution {public int findMaxK(int[] nums) {int k -1;Set<Integer> set new HashSet<Integer>();for (int x : nums) {set.add(x);}for (int x : nums) …

springboot整合websocket开箱即用

springboot-websocket整合项目开箱即用&#xff0c;ws服务端&#xff0c;包含了在线客户监听&#xff0c;发送指定客户端数据&#xff0c;发送所有客户端数据。还可以根据指定转发给某个客户端。 WebSocketConfig配置缓存大小设置&#xff0c;设置异步发送操作的超时时间&#…

HTML5的新增表单元素

HTML5 有以下新的表单元素: <datalist> <keygen> <output> datalist datalist 元素规定输入域的选项列表。 datalist属性规定 form 或 input 域应该拥有自动完成功能。当用户在自动完成域中开始输入时&#xff0c;浏览器应该在该域中显示填写的选项&…

OSPF的原理与配置

第1章 OSPF[1] 本章阐述了OSPF协议的特征、术语&#xff0c;OSPF的路由器类型、网络类型、区域类型、LSA类型&#xff0c;OSPF报文的具体内容及作用&#xff0c;描述了OSPF的邻居关系&#xff0c;通过实例让读者掌握OSPF在各种场景中的配置。 本章包含以下内容&#xff1a; …

docker创建nginx容器

前言&#xff1a;当直接run运行nginx容器时&#xff0c;如果命令带有-v 映射出配置文件目录&#xff0c;则会报错&#xff0c;提示无法初始化&#xff0c;原因是没有配置文件&#xff0c;docker会同步主机文件到容器内&#xff0c;而主机文件又是空白的&#xff0c;所以无法启动…

选择工业交换机的外壳有什么要求?

在选择工业交换机时&#xff0c;我们通常更加注意工业交换机的温度范围、EMC电磁兼容性、安装方式和电源等方面&#xff0c;而对于工业交换机的外壳关注较少&#xff0c;除非客户有防水要求&#xff0c;那么&#xff0c;选择外壳有什么要求呢&#xff1f; 工业交换机的外壳采用…

华测监测预警系统 2.2 存在任意文件读取漏洞

华测监测预警系统 2.2 存在任意文件读取漏洞 一、 华测监测预警系统 2.2 简介二、漏洞描述三、影响版本四、fofa查询语句五、漏洞复现1、手动复现2、自动复现 六、修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信…

mac 版hadoop3.2.4 解决 Unable to load native-hadoop library 缺失文件

mac 版hadoop3.2.4或其他版本 Unable to load native-hadoop library 缺失文件 Native 包报错缺失&#xff1a; 1. hadoop-3.2.4/lib/native里加*.dylib 2. hadoop-3.2.4/etc/hadoop/hadoop-env.sh 加或修改 export HADOOP_OPTS"-Djava.library.path/Users/lvan/Documen…

a16z公布AI产品流量排名,ChatGPT占据榜首

&#x1f989; AI新闻 &#x1f680; a16z公布AI产品流量排名&#xff0c;ChatGPT占据榜首 摘要&#xff1a;美国风投公司a16z公布了针对C端用户的AI产品流量排名榜单。根据SimilarWeb的网站流量数据&#xff0c;ChatGPT位居榜首&#xff0c;占总流量的60%。排名第二的是Char…

设计模式 - 结构型模式考点篇:装饰者模式(概念 | 案例实现 | 优缺点 | 使用场景)

目录 一、结构型模式 1.1、装饰者模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、结构型模式 1.1、装饰者模式 1.1.1、概念 装饰者模式就是指在不改变现有对象结构的情况下&#xff0c;动态的给该对象增加一些职责&#xff08;增加额外功能&#…

IsaacGym四足机器人sim to real全过程详细解析(walk these ways方法)

四足机器人强化学习控制第三篇 第一篇 Isaac Gym环境安装和四足机器人模型的训练 第二篇 docker中安装ROS 在宇树四足机器人运行 强化学习GenLoco算法 目录 四足机器人强化学习控制第三篇前言一、安装和配置二、训练1.训练2.恢复训练3.训练结果 三、sim to real1.部署模型注意…

重生奇迹MU天空之城玩转攻略

现在依然有众多玩家喜欢重生奇迹MU 游戏&#xff0c;游戏设计非常完善&#xff0c;后续推出了重生奇迹MU 版本&#xff0c;在设计方面更加炫酷&#xff0c;各种游戏玩法以及模式&#xff0c;让众多玩家感受到不错的游戏体验。 游戏由很多的地图组成&#xff0c;重生奇迹MU 大陆…

【Redis】List列表相关的命令

目录 命令LPUSHLPUSHXLRANGERPUSHRPUSHXLPOPRPOPLINDEXLINSERTLLENblpop和brpop 命令 LPUSH 将⼀个或者多个元素从左侧放⼊&#xff08;头插&#xff09;到list中。 LPUSH key element [element ...]LPUSHX 在key存在时&#xff0c;将⼀个或者多个元素从左侧放⼊&#xff08…

【好文推荐】openGauss索引推荐功能测试

一、单索引推荐 单索引推荐功能&#xff0c;目前支持select查询&#xff0c;看官方介绍类似oracle中的sql_tunning_adviser,不过只是推荐创建索引。根据sql优化原理&#xff0c;猜测应该时根据选择来推荐索引。 1、查看sqlPanWeiDB# create table t2 as select * from pg_tab…

家政预约服务APP小程序搭建,功能支持定制

家政预约服务APP小程序搭建&#xff0c;功能支持定制&#xff0c;后期升级无忧&#xff0e;团队自主研发家政APP系统&#xff0c;正版源码&#xff0c;售后技术保障&#xff01; 家政系统客户端 搭建专属私城流量平台&#xff0c;让您插上互联网的翅膀。找月嫂&#xff0c;育婴…

Docker镜像容器简单案例

我们安装完Docker之后就可以练习了. 镜像 案例1-拉取、查看镜像 1&#xff09;首先去镜像仓库搜索nginx镜像&#xff0c;比如 : Docker Hub Container Image Library | App Containerization 搜索我们想要拉取的镜像 , 例如: nginx 复制命令&#xff1a; docker pull nginx …

性能测试之稳定性测试和并发压力测试的TPS计算

1、稳定性测试TPS计算 ①普通计算公式&#xff1a;TPS总请求数 / 总时间按照需求得到基础数据&#xff0c;在去年第20周&#xff0c;某平台有5万的浏览量那么总请求数我们可以估算为5万&#xff08;1次浏览都至少对应1个请求&#xff09;总请求数 50000请求数总时间&#xff1…

Spring Task简单说明

1.导入坐标 说明&#xff1a;自带有spring-context。 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.sdk.oss}</version> </dependency> 2. 启动类添加注解 pac…

ubuntu下查看realsense摄像头查看支持的分辨率和频率

引言&#xff1a; 在实际应用中&#xff0c;摄像头的频率如果过高&#xff0c;可能会造成系统图像处理的压力过大&#xff0c;因此需要选择合适的参数才能达到预期的效果。本文主要探讨设置realsense相关参数 1、打开终端&#xff0c;输入rs-enumerate-devices rs-enumerate-…

超市微信小程序是怎么做的

市微信小程序是利用微信小程序平台为超市或零售商提供线上销售服务的一种应用。通过小程序&#xff0c;超市可以向消费者提供更加便捷、快速、个性化的购物体验&#xff0c;从而提升销售业绩、增加客户满意度。以下是超市微信小程序可以实现的一些主要功能。 一、商品展示与搜索…