Lesson10---list

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.mzph.cn/news/101395.shtml

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

相关文章

B树、B+树详解

B树 前言   首先&#xff0c;为什么要总结B树、B树的知识呢&#xff1f;最近在学习数据库索引调优相关知识&#xff0c;数据库系统普遍采用B-/Tree作为索引结构&#xff08;例如mysql的InnoDB引擎使用的B树&#xff09;&#xff0c;理解不透彻B树&#xff0c;则无法理解数据…

SpringBoot 如何使用 Prometheus 进行监控

在当今的软件开发世界中&#xff0c;监控是至关重要的一部分。它允许开发人员和运维团队实时跟踪应用程序的性能、可用性和健康状况。Spring Boot是一个流行的Java框架&#xff0c;用于构建微服务和Web应用程序&#xff0c;而Prometheus是一个开源的监控和警报工具。本文将介绍…

小程序 词云图 echarts-for-weixin-wordcloud

GitHub - clydee-geng/echarts-for-weixin-wordcloud: echarts词云微信小程序版 这个是适配与小程序版的词云图&#xff0c;之前有找到ucharts来代替&#xff0c;但是ucharts的词云图功能有两个缺点&#xff1a;1.无法根据值的大小显示词云图的大小&#xff1b;2.显示的顺序是…

主动配电网故障恢复的重构与孤岛划分matlab程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 参考文档&#xff1a; A New Model for Resilient Distribution Systems by Microgrids Formation&#xff1b; 主动配电网故障恢复的重构与孤岛划分统一模型&#xff1b; 同时考虑孤岛与重构的配电网故障…

VR全景展示带来旅游新体验,助力旅游业发展!

引言&#xff1a; VR&#xff08;虚拟现实&#xff09;技术正以惊人的速度改变着各行各业&#xff0c;在旅游业中&#xff0c;VR全景展示也展现了其惊人的影响力&#xff0c;为景区带来了全新的宣传机会和游客体验。 一&#xff0e;什么是VR全景展示&#xff1f; VR全景展示是…

java过滤非中英文的特殊字符,四字节表情字符

过滤非中英文的特殊字符 /*** 过滤特殊字符* param str str* return String*/ public static String filterStr(String str) {if (StringUtils.isBlank(str)) {return str;}String regEx "[~!#$%^&*()|{}:;,\\[\\].<>/?~&#xff01;#&#xffe5;%……&…

Python的就业前景及薪资收入

作为近几年来特别受欢迎的编程语言之一&#xff0c;Python一直以来被众多行业内人士寄予厚望&#xff0c;今后有可能替代老牌霸主Java&#xff0c;成为新一代编程语言榜首。 与其他语言相比&#xff0c;Python中的语言语法特别简单&#xff0c;并且代码具有可读性&#xff0c;多…

ubuntu安装Miniconda并举例使用

更新系统包 sudo apt update sudo apt upgrade官网下载Miniconda&#xff0c;最好是实体机下载后放进虚拟机&#xff0c;方法可以参考Xftp 7连接服务器或者本地虚拟机文章 https://docs.conda.io/en/latest/miniconda.html#linux-installers 进入安装目录执行&#xff0c;右键…

Maven 引入外部依赖

如果我们需要引入第三方库文件到项目&#xff0c;该怎么操作呢&#xff1f; pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。 要添加依赖项&#xff0c;我们一般是先在 src 文件夹下添加 lib 文件夹&#xff0c;然后将你工程需要的 jar 文件复制到 …

Springboot接收http参数总结(最简单易懂)

1. 前端能携带请求参数的地方 http请求一半前端请求参数放在三个地方&#xff1a;请求头&#xff0c;请求查询参数&#xff08;Query String&#xff09;&#xff0c;请求体。 请求体需要获取HttpServletRequest对象才能获取。 2. 请求体常见格式 而请求体中可以存放多种格式…

深度学习-房价预测案例

1. 实现几个函数方便下载数据 import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.s3-accelerate.amazonaws.com/def download(name, cache_diros.path.join(.., data)): #save"""下载…

架构师选择题--信息安全技术(系统安全)

架构师选择题--信息安全技术 真题 很少超纲 真题 b c d d b a d a d a Kergberos和数字证书是类似的协议 向TGS申请票据 C PGP&#xff1a;安全电子邮件传输协议 b c b 使用发送方是私钥加密摘要–发送方不可抵赖 加密&#xff1a;保密性 信息摘要&#xff1a;完整性 数…

docker compose和consul(服务注册与发现)

一、Docker-compose 简介 Docker-Compose项目是基于Python开发的Docker官方开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层&#xff0c;分别是 工程&#xff08;project&#xff09;&#xff0c;服务&#xff08;service&a…

TensorFlow入门(二十一、softmax算法与损失函数)

在实际使用softmax计算loss时,有一些关键地方与具体用法需要注意: 交叉熵是十分常用的,且在TensorFlow中被封装成了多个版本。多版本中,有的公式里直接带了交叉熵,有的需要自己单独手写公式求出。如果区分不清楚,在构建模型时,一旦出现问题将很难分析是模型的问题还是交叉熵的使…

Vega Prime入门教程14.01:调用VAPS XT DLL

本文首发于&#xff1a;Vega Prime入门教程14.01&#xff1a;调用VAPS XT DLL 在VAPS XT系列教程中提到过Vega Prime可以直接调用Drawing Integration生成的dll&#xff0c;本文来测试这个功能效果。 本系列使用的是VP18.0&#xff0c;使用的是VC14.0&#xff08;VS2015&…

Android Studio修改模拟器AVD Manger目录

Android Studio修改虚拟机AVD Manger目录 1、在AS的设备管理器Device Manager中删除原来创建的所有虚拟机&#xff08;Android Virtual Device&#xff09;&#xff1b; 2、新建一个自定义的AVD目录&#xff0c;例如&#xff1a;D:\Android\AndroidAVD 3、在高级系统设置中增加…

【Zookeeper专题】Zookeeper选举Leader源码解析

目录 前言阅读建议课程内容一、ZK Leader选举流程回顾二、源码流程图三、Leader选举模型图 学习总结 前言 为什么要看源码&#xff1f;说实在博主之前看Spring源码之前没想过这个问题。因为我在看之前就曾听闻大佬们说过【JavaCoder三板斧&#xff1a;Java&#xff0c;Mysql&a…

Kafka和RabbitMQ的对比

Rabbitmq比kafka可靠&#xff0c;kafka更适合IO高吞吐的处理&#xff0c;比如ELK日志收集 Kafka和RabbitMq一样是通用意图消息代理&#xff0c;他们都是以分布式部署为目的。但是他们对消息语义模型的定义的假设是非常不同的。 a) 以下场景比较适合使用Kafka。如果有大量的事…

Linux shell编程学习笔记9:字符串运算 和 if语句

Linux Shell 脚本编程和其他编程语言一样&#xff0c;支持算数、关系、布尔、字符串、文件测试等多种运算&#xff0c;同样也需要进行根据条件进行流程控制&#xff0c;提供了if、for、while、until等语句。 上期学习笔记中我们研究了字符串数据的使用&#xff0c;今天我们研…

Python:温度转换(摄氏度与华氏度)

Python:温度转换&#xff08;摄氏度与华氏度&#xff09; TempStrinput("请输入带有符号的温度值&#xff1a;") if TempStr[-1] in [F,f]:C(eval(TempStr[0:-1])-32)/1.8print("转换后的温度是{:.2f}C".format(C)) elif TempStr[-1] in[C,c]:F1.8*eval(T…