知识点汇总
田怼怼
这个作者很懒,什么都没留下…
展开
-
三次握手与四次挥手,你理解了吗?
三次握手与四次挥手的经典问题总结,你确定不看看吗?原创 2020-05-08 16:28:30 · 361 阅读 · 0 评论 -
vector与list的区别
vector与list的区别原创 2020-05-06 23:21:08 · 1336 阅读 · 0 评论 -
虚函数相关问题
虚函数相关问题原创 2020-05-06 23:15:50 · 278 阅读 · 0 评论 -
多线程相关问题
多线程相关问题原创 2020-05-06 23:12:59 · 149 阅读 · 0 评论 -
TCP/IP和UDP的比较
本文转自[夜雨翛然]的博客转载 2020-04-23 13:07:29 · 353 阅读 · 0 评论 -
进程间通信方式IPC
进程间通信有五种,分别是管道、共享内存、信号量、消息队列、Socket原创 2020-04-20 11:09:53 · 170 阅读 · 0 评论 -
哈希表相关问题
1、哈希的概念元素的存储位置与它的关键码一一映射,在查找元素的时候不用进行比较,可以直接在表中检索出元素的值,所以查找的时间复杂度是O(1)2、哈希冲突不同关键字通过相同哈希数计算出相同的哈希地址3、产生哈希冲突的原因设计的哈希函数不够合理(常用的哈希函数:直接的定制法,除留余数法)4、解决哈希冲突的方法(1)闭散列(开放定址法)发生哈希冲突时,如果哈希表未被装满,说明哈希表中患...原创 2020-04-20 11:06:41 · 425 阅读 · 0 评论 -
inline函数
内联函数的出现是为了解决宏存在的问题宏的实现在预处理器而不是在编译器,所以在C++中使用宏存在两个问题 ,分别是宏的实现在预处理阶段,没有类型检测,不安全,还有在C++中不允许预处理其访问类的成员函数,这也就说明宏不能作为类的成员函数,为了解决这两个问题,引出了内联函数。内联函数任何在类中定义的函数都会自动成为内联函数,也可以在非类的函数前面加上inline关键字,使之成为内联函数。(必须将...原创 2020-04-20 11:03:18 · 145 阅读 · 0 评论 -
为什么有了二叉搜索树和二叉平衡树之后还需要红黑树?
二叉搜索树、二叉平衡树、红黑树的区别与应用场景。原创 2020-03-19 16:04:54 · 290 阅读 · 0 评论 -
使用new和delete管理动态内存的常见问题
使用new和delete管理动态内存存在三个常见问题忘记delete内存。忘记释放动态内存会导致“内存泄漏”的问题,因为这种内存永远不可能被归还给自由空间。查找内存泄漏错误是非常困难的,因为通常应用程序运行很长时间后,真正耗尽内存时,才能检测到这种错误。使用已经释放掉的对象。通过在释放内存后将指针置为空,有时可以检测出这种错误。同一块内存释放两次。当有两个指针指向相同的动态内存分配对...原创 2020-02-26 13:28:19 · 368 阅读 · 0 评论 -
关于多态的常见面试题
什么是多态?答:多态就是多个对象完成同一行为所表现出的不同形态。C++多态性具体体现在运行和编译两个方面:在程序运行时的多态性通过继承和虚函数来体现;在程序编译时多态性体现在函数和运算符的重载上。什么是重载、重写(覆盖)、重定义(隐藏)?答:(1)重载是针对函数来说的,只要函数名相同,参数列表不相同即可构成重载;(2)重写/覆盖是针对继承来说的,需要函数名、参数列表、返回值类型均相...原创 2020-02-19 17:29:53 · 1216 阅读 · 0 评论 -
C++经典面试题汇总(更新中...)
C++相关经典面试题总结原创 2020-02-17 22:41:00 · 146 阅读 · 0 评论 -
指针与引用的区别
指针是一个内存的地址,引用是一个对象的别名。指针与引用的区别0、指针保存的是所指对象的地址;引用是所指对象的别名,没有空间。指针需要通过解引用间接访问;引用可以直接访问。1、指针可以改变地址,从而改变所指对象;引用不能改变。2、引用在定义的时候必须初始化;指针在定义时不需要初始化。3、指针有指向常量的指针和常量指针;引用没有常量引用。4、指针比较灵活,真正掌握指针的用法才能用的灵活...原创 2020-02-17 22:37:23 · 116 阅读 · 0 评论 -
new与malloc的区别
new与malloc的区别是一道经典的面试题,先整理一下,希望面试的时候能用到。new与malloc的区别0、new/delete是运算符,需要编译器支持;malloc/free是库函数,需要头文件支持。1、new分配内存是按照数据类型分配,不需要指定内存块的大小;malloc分配内存是按照指定内存大小进行分配。2、new在分配内存的过程中还回调用构造函数,delete释放空间时会调用...原创 2020-02-17 22:02:05 · 199 阅读 · 0 评论 -
深拷贝与浅拷贝
拷贝可分为深拷贝和浅拷贝,从字面意思来看,浅拷贝就是把原来的内容复制,但是内存并不发生改变,改变复制后的内容原来的内容也会发生改变;而深拷贝是开辟了新的内存空间,改变复制后的内容原来的内容不会发生改变。假设原有内容为A,复制的内容是B,当B改变时:A发生改变,则此次为浅拷贝;A不发生改变,则此次为深拷贝。浅拷贝只是将对象中的值拷贝过来,会发生多个对象共用一份资源,当某个对象发生资源释放...原创 2020-02-11 19:51:37 · 90 阅读 · 0 评论 -
赋值运算符函数
如何实现一个赋值运算符重载函数呢?我们要考虑以下几个问题1、首先要考虑的是该函数的返回值,应该是该类型的引用,并在函数结束前返回一个自身的引用(*this)这样做的目的是:实现连续赋值操作2、其次要考虑的是参数,由于传值会进行拷贝构造,会造成一定的资源浪费,所以在传参时应该传引用;在传参的过程中,实例的状态不会发生改变,所以使用const关键字3、在赋值的过程中还存在开辟新空间以及释放资...原创 2019-11-28 23:15:24 · 157 阅读 · 0 评论 -
隐藏、重写、重载的区别
隐藏:当派生类中的函数与基类中的函数同名(参数列表可以不一致),则基类中的函数会出现隐藏,只显示派生类中的函数。在发生隐藏的时候,基类中的函数依然存在,只是不显示重写:派生类中有一个与基类完全相同(返回值、函数名、参数列表)的虚函数(virtual),则基类中的函数会出现重写,与派生类中的函数内容一致。在发生重写的时候,基类中的函数已经发生改变,原有的函数已经不存在。特例:协变:基类...原创 2019-12-05 18:24:10 · 176 阅读 · 0 评论