- 博客(35)
- 收藏
- 关注
原创 网络基础3
网络层基本概念,IP协议头格式,网段划分,特殊的IP地址,IP地址的数量限制,运营商的理解,全球网络的理解,私有IP地址和公网IP地址,路由,IP层分片与组装,数据链路层,以太网帧格式,以太网通信原理,ARP协议,ARP数据报的格式,DNS域名简介,ICMP协议,NAT技术,NAPT技术,代理服务器
2024-04-23 17:10:05 1194
原创 Linux网络基础2(下)
详解端口号,netstat,pidof,UDP协议,TCP协议,TCP报头,32位序列和确认序列号,6个标记位,16位窗口大小,4位首部长度,确认应答机制,超时重传,连接管理,流量控制,快重传,延迟应答,面向字节流,粘包问题,TCP异常,TCP小结,TCP报文结构
2024-04-11 18:09:42 961
原创 Linux网络基础2(上)
自己定协议/用json协议实现网络版本计算器、重谈OSI七层模型、HTTP协议、域名介绍、url介绍、HTTP请求和响应、实现一个简易的HTTP服务器、HTTP请求方法、HTTP状态码、重定向、HTTP常见的Header、cookie讲解
2024-03-17 20:35:23 1055
原创 Linux网络编程套接字
认识端口号、认识传输层协议TCP/UDP、网络字节序、socket编程接口、实现简单的UDP网络程序、实现远程执行服务器shell指令、Windows套接字编写、UDP实现一个简单的聊天室、实现简单的TCP网络程序、TCP实现一个中英互译程序
2024-02-19 14:28:11 791
原创 Linux网络基础1
计算机网络背景、协议理解、OSI七层模型、TCP/IP五层(四层)模型、网络传输基本流程、以太网通信原理、IP、Mac地址理解
2024-02-14 15:35:28 812
原创 Linux线程
线程的理解、重谈页表、线程切换、线程控制、线程库的理解 、线程的互斥、锁的原理、锁的封装、Lockguard的使用、关于死锁、线程同步、条件变量、生产者与消费者CP理论、基于阻塞队列的生产消费模型、基于环形队列的生产消费模型、POSIX信号量、线程池、线程的封装、STL,智能指针和线程安全、线程安全的单例模式、其它各种常见的锁、读者和写者问题
2024-02-07 17:26:33 1052
原创 详解Linux进程间通信
进程间通信、文件级别通信原理、匿名管道通信原理、管道特点、实现进程池、命名管道、systemV通信-共享内存-消息队列-信号量
2023-11-28 23:37:57 776
原创 详解Linux基础IO--干货满满
详解文件描述符、重定向、Linux一起皆文件理解、缓冲区、fwrite等接口实现、从物理上软件上认识硬件磁盘、文件系统、软硬链接、动静态库
2023-11-16 00:19:15 67
原创 详解C++11
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。
2023-10-10 19:53:01 46
原创 C++ 位图/布隆过滤
一种支持删除的方法:将布隆过滤器中的每个比特位扩展成一个小的计数器,插入元素时给k个计数器(k个哈希函数计算出的哈希地址)加一,删除元素时,给k个计数器减一,通过多占用几倍存储空间的代价来增加删除操作。比如:在布隆过滤器中查找"alibaba"时,假设3个哈希函数计算的哈希值为:1、3、7,刚好和其他元素的比特位重叠,此时布隆过滤器告诉该元素存在,但实该元素是不存在的。布隆过滤器的思想是将一个元素用多个哈希函数映射到一个位图中,因此被映射到的位置的比特位一定为1。通常是用来判断某个数据存不存在的。
2023-09-26 15:59:43 46
原创 实现unordered_map/unordered_set--哈希
哈希:在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到log2N,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。
2023-09-24 15:08:30 42
原创 C++ AVLTree 的实现
二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。
2023-09-12 19:21:56 31
原创 C++map/set 使用讲解
键值对是什么?键值对是一个能存储两个数据的结构体,数据分为键和值,其中一个数据(键)代表着整体数据(进行运算时只考虑其中一个数据,这个数据就叫做键)为什么有键值对的出现?通常我们需要将两个数据存储到同一容器的某一个空间,这样就能方便通过键直接找到值。例如:我们不用键值对存储,我们就要将两个数据存储到两个容器,遍历一遍找到了一个数据,而又要找这个数据的对应数据时,又必须遍历另一个容器,会大大降低效率T1 first;T2 second;{}{}
2023-09-10 13:51:16 140 1
原创 详解C++二叉搜索树
键值对是什么?键值对是一个能存储两个数据的结构体,数据分为键和值,其中一个数据(键)代表着整体数据(进行运算时只考虑其中一个数据,这个数据就叫做键)为什么有键值对的出现?通常我们需要将两个数据存储到。
2023-07-28 19:41:10 69 1
原创 详解C++多态
重写:两个函数的参数列表,函数名,返回值必须全部相同派生类的重写虚函数可以不加virtual(建议大家自己写的时候加上)协变:返回的值可以不同,但要求返回值必须是父子关系的指针或引用(不常用)举例1:我们来算下Person和Student的大小:不是我们预期的4和8,为什么呢?在Person对象里有一个虚函数表(指针数组),指向代码段的函数地址注意:派生类对象自己不会单独产生虚函数表,派生类的表是继承基类的。为什么必须是父类的指针或引用,而不是子类的?
2023-07-25 22:27:51 38 1
原创 详解C++适配器——stack栈、queue队列、priority_queue优先级队列
详解C++适配器——stack栈、queue队列、priority_queue优先级队列
2023-07-21 18:58:40 68 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人