02 2020 档案

摘要:计网学习资料 "计算机网络" [2019 王道考研 计算机网络 ](https://www.bilibili.com/video/av70228743?from=search&seid=15402005760429242828) 可以看看概论的 $OSI$ 参考模型,传输层,应用层部分。 $IP$ 阅读全文
posted @ 2020-02-29 23:57 Jiaaaaaaaqi 阅读(297) 评论(0) 推荐(0)
摘要:$OSI$ 分层作用 1. 各层之间相互独立。某一层并不需要知道其他层是如何实现的,而仅仅需要知道该层提供的服务。 2. 灵活性好。当任何一层发生改变时,只要保证接口关系不变,其他层不会受到影响。 3. 易于实现和维护。将一个大系统分解成多个相对独立的子系统,利于实现。 4. 能促进标准化工作。每一 阅读全文
posted @ 2020-02-27 00:13 Jiaaaaaaaqi 阅读(176) 评论(0) 推荐(1)
摘要:$lambda$ 表达式 $lambda$ 表达式定义一个匿名函数,并且可以捕获一定范围内的变量,基本格式如下: $[capture]$:捕获列表,可以捕获上下文的变量来供 $lambda$ 函数使用 $[var]$:值传递的方式捕获 $var$ $[\&var]$:引用传递的方式捕获 $var$ 阅读全文
posted @ 2020-02-25 18:58 Jiaaaaaaaqi 阅读(188) 评论(1) 推荐(0)
摘要:声明和定义 变量定义:为变量分配空间,还可以为变量指定初始值。 变量声明:向程序表明变量的类型和名字,但不分配空间。可以通过 $extern$ 关键字来声明而不定义,$extern$ 告诉编译器变量在别的地方定义了。 1. 定义也是声明,声明不是定义。例如: extern int i 声明且不定义 阅读全文
posted @ 2020-02-24 20:03 Jiaaaaaaaqi 阅读(143) 评论(0) 推荐(0)
摘要:有 $static、virtual$ 之类的一个类的内存分布 $static$ 修饰成员变量 静态成员变量在 全局存储区 分配内存,本类的所有对象共享,在还没生成类对象之前也可以使用。 $static$ 修饰成员函数 静态成员函数在 代码区 分配内存。静态成员函数和非静态成员函数的区别在于非静态成员 阅读全文
posted @ 2020-02-22 18:53 Jiaaaaaaaqi 阅读(140) 评论(0) 推荐(0)
摘要:i++ 和 ++i 的区别 ++i 返回对象的引用, i++ 必须产生一个临时对象保存更改前对象的值并返回,所以导致在大对象的时候产生的比较大的复制开销,效率较低。 拷贝构造函数 这里的 $b$ 和 $c$ 都是一开始是不存在的,是通过 $a$ 对象来构造和初始化的。 拷贝构造函数重载形式: 如果用 阅读全文
posted @ 2020-02-21 19:47 Jiaaaaaaaqi 阅读(112) 评论(0) 推荐(0)
摘要:红黑树 "面试常问:什么是红黑树?" "wiki红黑树" 红黑树性质 1. 节点一定是红色或黑色。 2. 根节点是黑色。 3. 每个叶子节点都是黑色的空节点($NIL$)。 4. 每个红色节点的两个子节点都是黑色。 5. 从任一节点到其每个叶子节点的所有路径上都包含相同的黑色节点数。 这些性质强制了 阅读全文
posted @ 2020-02-20 19:15 Jiaaaaaaaqi 阅读(94) 评论(0) 推荐(0)
摘要:构造函数不可以是虚函数 1. 从存储空间角度,虚函数对应一个虚函数表,而指向虚函数表的虚函数指针是存储区对象内存内的。如果构造函数是虚函数,则需要通过虚函数表来调用,而对象还没有构造出来,无法找到虚函数表。 2. 从使用角度,虚函数主要用于信息不全的情况下,使子类重写的函数能得到对应的调用。构造函数 阅读全文
posted @ 2020-02-19 18:26 Jiaaaaaaaqi 阅读(81) 评论(0) 推荐(0)
摘要:~~摸鱼的一天。。~~ $shared\_ptr$ 指针的实现 阅读全文
posted @ 2020-02-18 18:56 Jiaaaaaaaqi 阅读(87) 评论(0) 推荐(0)
摘要:四种 $cast$ 转换 四种 $cast$ 转换为:$const\_cast、static\_cast、dynamic\_cast、reinterpret\_cast$。 1. $const\_cast:$ 用于将 $const$ 变量转换成非 $const$。 2. $static\_cast: 阅读全文
posted @ 2020-02-17 18:51 Jiaaaaaaaqi 阅读(123) 评论(0) 推荐(0)
摘要:$C$++ 从源代码到可执行文件过程 1. 预处理阶段:处理源代码中以 ' ' 开头的预编译指令,生成 预编译(.i) 文件。 展开宏定义,将 $define$ 删除 处理条件编译语句 处理 $include$ 编译指令 删除注释 2. 编译阶段:将预编译文件转化成相应的汇编码,生成 汇编(.s) 阅读全文
posted @ 2020-02-15 19:01 Jiaaaaaaaqi 阅读(122) 评论(0) 推荐(0)
摘要:$vector$ 释放内存 $vector$ 在插入大量数据后,即使把数据全部删除,但并没有改变容器的容量,仍然会占用内存。 通过 $swap$ 操作来释放 $vector$ 的内存,原理是 $vector()$ 使用 $vector$ 的默认构造函数建立了临时对象,使用 $swap$ 操作让原本对 阅读全文
posted @ 2020-02-14 18:37 Jiaaaaaaaqi 阅读(100) 评论(0) 推荐(0)
摘要:$map$ 和 $set$ $map$ 是映射,$set$ 是集合,都是通过红黑树来实现的。他们的操作行为,都是转调红黑树的操作行为。 1. $map$ 中元素为 (键 值)key value ,关键字起到索引作用,值保存相关数据。$set$ 元素为 (键)key ,值即是键, 2. $map$ 允 阅读全文
posted @ 2020-02-13 23:11 Jiaaaaaaaqi 阅读(123) 评论(0) 推荐(0)
摘要:引用 和 $const$ 引用 引用是另一个 变量 的别名,必须初始化且一旦定义就不可改变。 $const$ 引用和引用不同的点在于 $const$ 引用是指向 常量 的引用。 如此一来,由于 $x$ 是 $const$ 的,不可被改变,将 $y$ 也声明成 $const$ 的,防止了 $x$ 的值 阅读全文
posted @ 2020-02-12 18:24 Jiaaaaaaaqi 阅读(111) 评论(0) 推荐(0)
摘要:动态内存分配 在执行程序过程中动态分配或回收存储空间的分配内存的方法。 $C$ 一般使用 $malloc、free$,$C$++ 一般使用 $new、delete$。 1. $malloc$ 原型为 void \ malloc(unsigned int size) ,开辟一块长度为 $size$ 连 阅读全文
posted @ 2020-02-11 18:43 Jiaaaaaaaqi 阅读(120) 评论(0) 推荐(0)
摘要:隐式类型转换 1. 表达式中,低精度类型向高精度类型发生转换。 2. 条件语句中,非布尔类型向布尔类型发生转换。 3. 初始化语句中,初始值向变量类型发生转换。 4. 赋值语句中,右侧运算对象向左侧运算对象发生转换。 5. 可以用 单个形参 来调用的构造函数定义了从 形参类型 到 该类类型 的一个隐 阅读全文
posted @ 2020-02-10 18:32 Jiaaaaaaaqi 阅读(148) 评论(0) 推荐(0)
摘要:虚函数表 在有虚函数的类中,存在一个虚函数指针,该指针指向一张虚函数表,当子类继承基类的时候,也会继承其虚函数表。当子类重写基类中的虚函数时,会将虚函数表中的地址替换成重写的函数地址。 (图片来自 https://www.cnblogs.com/bewolf/p/9352116.html) char 阅读全文
posted @ 2020-02-09 19:02 Jiaaaaaaaqi 阅读(138) 评论(0) 推荐(0)
摘要:函数指针 在编译过程中,每一个函数都有一个入口地址,而函数指针就是指向该入口地址的指针。 纯虚函数 有些情况下,基类生成的对象是不合理的,比如动物可以派生出狮子、孔雀等,这些派生类显然存在着较大的差异。那么可以让基类定义一个函数,并不给出具体的操作内容,让派生类在继承的时候在给出具体的操作,这样的函 阅读全文
posted @ 2020-02-08 19:09 Jiaaaaaaaqi 阅读(171) 评论(0) 推荐(0)
摘要:$static$ 关键字的作用 1. 全局静态变量:在全局变量前加上 $static$,该变量作用域从定义该变量开始到文件尾结束。存储在静态存储区中。 2. 如果 $static$ 修饰的全局变量在 $h$ 文件中,则其他文件也可以访问。如果在其他 $h$ 中操作该变量,该变量会被真实改变。而在其他 阅读全文
posted @ 2020-02-07 16:28 Jiaaaaaaaqi 阅读(160) 评论(0) 推荐(0)