- 博客(59)
- 收藏
- 关注
原创 数据结构:哈希
概念哈希冲突闭散列开散列哈希函数装载因子概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( ),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。所以出现了哈希算法.
2021-06-21 20:55:29
362
原创 详解HTTP
URLHTTPhttp报文结构cookie与session一个简单的http服务器HTTP与HTTPSSSL加密方式HTTP1.0、HTTP1.1、HTTP2.0的区别
2021-06-13 16:37:18
453
1
原创 基于Linux套接字编程
socket是一种常见的网络编程,使用socket可以实现不同主机间的通信。下面简单理解一下socket编程的大致流程
2021-05-25 15:59:00
213
5
原创 C++多态
什么是多态如何实现多态override和final关键字抽象类多态的原理三级目录什么是多态面向对象语言的三大特征就是封装,继承,多态。C++函数重载其实就是多态的一种体现,即在使用层面,使用同一个函数,对于不同的参数会调用不同的函数,产生不同的结果。看上去一个函数会出现多中形态。而一般多说的多态指的是在两个具有父子关系的类中调用一个函数,会根据类的不同而调用不同的函数。假如在父类中有一个函数fun,子类继承之后也有函数fun,那在子类中可不可以对该函数进行重载呢?答案是不可以,在子类中如果直接“重.
2021-05-13 15:27:29
237
原创 多线程操作:互斥、同步与信号量(生产者消费者模型两种实现方式)
互斥与同步的概念基于锁实现互斥与同步基于条件变量和锁实现同步基于阻塞队列的生产者与消费者模型什么是信号量?基于信号量的生产者与消费者模型
2021-05-03 16:18:02
2186
3
原创 STL容器:双端队列deque与优先级队列priority_queue
双端队列deque基于deque的Stack基于deque的queue优先级队列priority_queue双端队列dequedeque是一个双端队列,即可以头插和尾插,也可以头删和尾删。它的优点就是结合了vector与list两个的优点,可是实现随机访问和头插头删,在空间不够需要扩容时也不需要像vector那样复杂,只需要在原来空间的基础上加入新的空间即可。虽然deque具有vector与list的优点,但是由于其复杂的结构,导致其有些操作效率非常低下,譬如排序,直接在deque中排序甚至不如先.
2021-05-01 17:04:58
533
3
原创 vector介绍与使用
vector概念vector的创建vector的遍历vector常用接口迭代器接口vector空间相关接口vector增删查改接口
2021-04-23 16:27:18
228
原创 深入理解Linux文件操作,软硬链接与动静态库
文件描述符(句柄)系统调用接口:open()write()lseek()read()dup2()重定向Linux文件系统(inode与软硬链接)inode硬链接软连接动态库与静态库概念静态库动态库
2021-04-07 18:18:04
2699
9
原创 C++string类常见接口函数原型与使用
一、什么是string类?二、类的各个接口构造函数运算符重载=运算符重载[]运算符重载+=运算符重载+运算符重载>>运算符重载<<运算符重载迭代器接口begin()与end()rbegin()与rend()增删查改接口push_back()尾插append()追加insert()指定位置添加erease()size()capacity()rsize()reserve()find()rfind()
2021-04-01 17:53:05
1030
原创 剑指 Offer 35. 复杂链表的复制(时间复杂度O(n),c++实现)
剑指 Offer 35. 复杂链表的复制(时间复杂度O(n),c++实现)
2021-03-21 15:38:01
287
原创 C++内存管理详解
内置类型空间申请与释放自定义类型空间申请与释放operator new与operator delete函数定位new表达式(placement-new)
2021-03-16 17:39:26
358
原创 C++入门基础知识(命名空间、缺省参数、函数重载及原理、引用等 )
命名空间C++输入&输出缺省参数函数重载及原理引用auto关键字(C++11)基于范围的for循环(C++11)
2021-02-15 21:36:25
148
1
原创 剑指offer07:根据前序遍历和中序遍历重建二叉树(思路,图解,代码)
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
2021-02-06 17:06:03
189
原创 数据结构:二叉树的详解及相关操作(创建二叉树,前、中、后、层序遍历,节点个数及衍生问题,判断完全二叉树,查找)
数据结构:二叉树的基本操作(创建二叉树,前、中、后、层序遍历,节点个数及衍生问题,判断完全二叉树,查找)
2021-01-21 17:05:13
240
原创 数据结构:队列介绍以及基本操作
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特性FIFO(First In First Out)入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头
2021-01-15 14:45:30
300
原创 数据结构:栈的介绍以及基本操作
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶
2021-01-15 14:25:05
526
原创 数据结构:双向带头循环链表的基本功能实现
带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了。
2021-01-10 11:09:59
450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人