- 博客(94)
- 收藏
- 关注
原创 【计算机网络】网络、互联网、因特网:别再傻傻分不清楚!一套图看懂现代网络通信骨架
揭秘计算机网络的“骨架与灵魂”!从“网络”到“互联网”再到覆盖全球的“因特网”,你真正了解它们的区别吗?我们将深入拆解因特网的三层结构与核心组成,看透边缘与核心部分如何协同工作。一场关于“交换”的效率革命在此上演:笨重低效的电路交换、惨遭淘汰的报文交换,以及为何分组交换能通过“化整为零”的智慧主宰现代网络?最后,厘清关键性能指标,彻底分清速率单位与数量单位的区别——为你搭建坚不可摧的网络知识基石!
2025-11-06 11:08:01
1016
1
原创 【QT学习之路】网络通信新次元!Qt TCP双侠:Server监听瞬息,Socket连接万变
Qt带来的TCP通信神器——QTcpServer与QTcpSocket,彻底点燃你的网络编程效率!无需再纠结底层细节,QTcpServer一键开启监听,nextPendingConnection自动迎候客户端接入;QTcpSocket火力全开,connectToHost秒连服务器,read/write轻松收发数据,一切行云流水。更燃的是,它们内置智能信号机制——readyRead信号实时触发数据到达,connected信号及时通报连接成功,所有网络I/O全自动托管,让你彻底摆脱繁琐操作,专注业务逻辑的核心。
2025-11-06 10:37:54
699
2
原创 最简单的方式做最系统的教学【计算机组成入门到入土】计组核心:一篇文章搞定指令格式与所有寻址方式
想彻底搞懂程序是怎么跑起来的?核心就在于CPU的指令与寻址!这份指南为你一次性理清:指令格式:三地址、二地址…怎么选才高效?操作码编码:定长 vs 变长,背后的设计哲学是什么?寻址方式全家福:立即寻址、直接寻址、间接寻址… 不止是概念,我们直接剖析它们的实现原理与实战场景。告别模棱两可,我们通过图解式解析和典型例题,帮你构建起关于指令系统的完整知识框架,让你对程序执行的理解提升一个维度。
2025-10-22 12:39:21
971
21
原创 【C++】你的二叉搜索树为什么慢?因为你还没解锁“平衡”的力量--AVL树核心详解
你以为二叉搜索树就够用了?不学会AVL树,你可能永远不知道“平衡”的力量!本文手把手带你攻克经典自平衡二叉搜索树——AVL树,不止是理论,我们从零实现一套完整的AVL树结构!你将学到:四种核心旋转策略:左单旋、右单旋、左右双旋、右左双旋(附完整代码)如何用平衡因子精准判断何时该旋转?从顺序插入到随机数据的多场景测试验证?为什么AVL树能做到 O(logN) 的极致查询效率?重要结论: AVL树是静态数据查询的王者,但却是频繁修改场景的“玻璃人”——理解它的优缺点,才能做出更好!
2025-10-22 12:34:31
841
10
原创 【数据结构--C++】二叉搜索树:一听就会一写就废?这份带源码的避坑指南请收好!
你写的程序为什么有时候快如闪电,有时候却慢如蜗牛?背后的秘密,可能就藏在一棵“树”里。这可不是普通的树,而是一棵能让搜索效率产生天壤之别的二叉搜索树!我们将彻底拆解它:从让查找“秒开”的黄金法则,到插入/删除的动态平衡术;从仅作“安检”的K模型,到堪比“档案库”的KV模型。最后,我们还会揭秘它为何会“退化”成性能杀手,以及高手们(AVL、红黑树)是如何巧妙化解的。文末附可直接运行的高效C++代码,带你从根本上理解现代数据的组织智慧。
2025-10-12 10:39:52
740
4
原创 【C++】透视C++多态:从虚函数表到底层内存布局的完全拆解
深入虚函数表核心,掌握多态实现原理!本文带你直击:虚表如何实现"同一调用,不同行为",动/静态绑定底层区别,实战打印虚表验证多态,多继承虚表布局解析,从使用到底层,彻底搞懂C++多态精髓!
2025-10-01 10:51:15
904
3
原创 【C++】面试官爱的C++多态八股文,这次让你彻底搞懂!
想知道如何用同一段代码让不同对象展现出独特行为?C++多态正是实现这一魔法的关键!本文将带你从虚函数的使用技巧一路杀到底层虚函数表的实现机制,彻底掌握协变、析构函数重写等高级玩法。更有final与override关键字的实战秘籍,助你写出更安全、更现代的C++代码!
2025-09-29 13:13:19
991
7
原创 【C++】别再用错public了!C++继承暗坑全图鉴,虚继承才是救世主
C++继承速通:从代码复用到菱形暴击,一篇拿捏九种权限、构造顺序、虚继承黑科技!
2025-09-26 17:04:41
781
19
原创 【C++】Template:深入理解特化与分离编译,破解编译难题
本文主要介绍了C++模板编程中的三个重要概念:非类型模板参数、模板特化和分离编译。首先讲解了非类型模板参数的使用场景和限制,对比了动态数组和静态数组实现的优缺点。其次详细说明了模板特化的概念,包括函数模板特化和类模板特化(全特化与偏特化),并通过日期类示例展示了特化的实际应用。最后讨论了模板分离编译的问题及两种解决方案。文章指出模板虽然能提高代码复用性和灵活性,但也可能导致代码膨胀和编译错误信息难以定位等问题。
2025-09-24 15:58:08
721
12
原创 最简单的方式做最系统的教学【计算机组成入门到入土】解码计算机:冯·诺依曼架构如何主宰你的每一次点击
本文摘要:文章系统介绍了计算机系统的基本概念与组成。首先阐述了计算机的软硬件分层结构,分析了系统结构与计算机组成的区别。重点讲解了冯·诺依曼计算机的五大部件及其工作流程,包括运算器、存储器、控制器的功能实现。随后详细说明了指令执行过程、存储单元访问机制,并介绍了计算机主要技术指标:机器字长、运算速度(主频、CPI、MIPS等)和存储容量。全文通过层次化、模块化的方式,系统性地呈现了计算机系统的核心组成原理与性能评估维度。
2025-09-24 14:41:57
1125
9
原创 【C++】STL--priority_queue(优先级队列)使用及其模拟实现、容器适配器和deque(双端队列)了解
本文介绍了C++中priority_queue、容器适配器及deque的基本概念与应用。priority_queue作为堆结构的容器适配器,默认使用vector实现大顶堆,可通过greater实现小顶堆。容器适配器如stack和queue默认基于deque实现,因其高效的头尾操作特性。文章详细分析了deque的双向开口设计、中控器结构和迭代器实现,同时指出其遍历效率低的缺陷。最后解释了选择deque作为stack/queue底层容器的原因:无需遍历的特性完美规避了deque的缺点,同时充分利用其高效插入删除
2025-09-18 12:19:28
978
8
原创 【C++】STL--从零实现stack栈和queue队列的所有关键操作
本文介绍了栈(stack)和队列(queue)两种容器适配器的实现。栈遵循后进先出原则,基于deque等底层容器实现,提供push、pop、top等接口;队列遵循先进先出原则,同样基于deque等容器实现,支持push、pop、front/back访问等操作。文章详细说明了它们的接口设计,并通过测试用例验证了功能实现,包括基础操作测试、不同底层容器测试以及边界情况测试。测试结果表明,这两种容器适配器均能正确处理元素入栈/队列、出栈/队列以及空容器等特殊情况。
2025-09-18 12:19:02
903
5
原创 【C++】STL--List使用及其模拟实现
本文介绍了C++中list容器的基本特性、实现原理及常见接口。list是基于双向链表实现的序列容器,支持高效插入/删除操作(O(1))但不支持随机访问(O(n))。文章详细讲解了list迭代器的实现方式,包括运算符重载;分析了构造/析构函数、容量查询、插入删除等核心接口的实现原理;特别强调了list迭代器失效问题及解决方案;最后通过与vector的对比,总结了list在插入删除效率、空间利用率等方面的特点及适用场景。list适合频繁插入删除但不需随机访问的场景。
2025-09-15 11:37:00
1227
原创 【C++】STL--Vector迭代器失效问题
本文深入探讨了C++ vector中迭代器失效问题。主要包括:1)空间改变操作(如扩容)会导致迭代器指向旧空间而失效;2)元素删除操作可能导致迭代器失效,特别是尾删时;3)对比VS和g++编译器对失效迭代器的处理差异,VS更严格而g++可能有隐患。文章通过代码示例说明失效场景,并强调无论何种编译器都应重新赋值失效迭代器以确保程序正确性。
2025-09-15 11:36:40
789
原创 【C++】STL--Vector使用及其模拟实现
本文介绍了C++ STL中的vector容器,包括其底层实现原理、常用接口及模拟实现。vector是动态数组,采用连续内存存储,支持高效随机访问。文章详细讲解了vector的构造方式、迭代器使用、空间管理策略(如扩容机制在VS和gcc下的差异),以及增删改查等核心操作的具体实现。通过代码示例展示了push_back、insert、erase等关键函数的实现逻辑,并提供了完整的测试用例验证功能。最后比较了不同编译环境下的扩容行为差异,帮助读者深入理解vector的内部工作机制。
2025-09-11 16:51:39
1004
3
原创 【C++】string类--常见接口及其模拟实现
本文详细介绍了C++ string类的常用操作及其实现方法,主要包括五部分内容:1.遍历方式(下标访问、c_str、迭代器、范围for);2.增加操作(push_back、+=重载、append、insert);3.删除操作(erase);4.查找操作(查找字符/字符串、字符串比较);5.修改操作(reserve和resize的区别与实现)。文章通过代码示例展示了各个接口的具体实现细节,特别是对字符串扩容、插入删除等关键操作的处理逻辑进行了详细说明。
2025-09-11 16:51:20
972
2
原创 【C++】Template:让你的代码更通用更优雅
本文介绍了C++中的模板编程,主要包含函数模板和类模板。函数模板通过参数化类型实现代码复用,包括隐式/显式实例化及匹配原则(优先匹配普通函数,不允许自动类型转换)。类模板用于创建通用类结构,实例化时需指定具体类型。模板编程是泛型编程的基础,能提高代码复用率和可维护性。
2025-09-06 14:01:25
1180
1
原创 【C++】string类--构造、拷贝、赋值及其模拟实现
本文介绍了C++中string类的出现原因及实现。由于C语言字符串处理存在与数据分离、内存管理不便等问题,C++设计了string类来提供更安全的字符串操作。string本质是basic_string模板类的char类型实例化。文章详细讲解了string的构造函数、拷贝构造和赋值运算符重载的实现,特别强调了异常安全处理和现代写法中使用临时对象交换的技巧。通过模拟实现展示了string类的基本结构和内存管理机制,为理解标准库string的实现提供了参考。
2025-09-06 14:01:06
1049
原创 【QT学习之路】-Qt入门
本文介绍了Qt项目创建的基本流程和文件结构。首先说明了如何通过QtCreator创建"Hello World"项目,强调了项目路径不能包含中文。随后详细解释了项目中的核心文件:.pro配置文件(定义模块依赖和编译选项)、main.cpp(程序入口)、mainwindow.ui(XML格式的界面文件)、mainwindow.h/cpp(窗口类定义和实现)。接着对比了Qt的三种窗口类:QWidget(基类)、QDialog(对话框)和QMainWindow(带菜单栏的主窗口),并讲解了Qt的
2025-08-26 22:44:48
1081
2
原创 【QT学习之路】-信号槽
本文介绍了Qt框架中的信号槽机制。信号槽是一种观察者模式实现,通过connect()函数建立信号与槽的连接。文章详细阐述了信号和槽的本质、标准信号槽的使用方法,以及如何自定义信号和槽函数。其中,信号是事件触发的函数声明,槽是处理信号的成员函数。文末通过"女朋友饿了"的示例,生动展示了信号槽的工作原理,包括信号重载和参数传递的实现方式。该机制为Qt提供了灵活的事件处理能力。
2025-08-26 22:42:56
914
1
原创 【C++】一篇带你了解C++中的动态内存管理
C/C++程序内存管理解析:程序内存分为栈区(局部变量)、堆区(程序员管理)、数据段(全局/静态变量)和代码段。C语言通过malloc/calloc/realloc分配内存,free释放,其中calloc会初始化内存为0,realloc可调整内存大小。C++引入new/delete操作符,相比malloc/free,new能自动调用构造函数初始化对象,delete会调用析构函数清理资源。关键区别在于:new自动处理类型大小和初始化,失败抛出异常;malloc需手动计算大小和类型转换,失败返回NUL
2025-08-25 07:53:14
929
原创 【C++】类和对象--初始化列表、友元、static成员、内部类
本文深入讲解C++类和对象的核心概念,重点包括:1.构造函数的初始化列表使用及其必要性,特别是对const成员、引用成员和自定义类型成员的初始化;2.explicit关键字禁止单参构造函数的隐式转换;3.静态成员变量和静态成员函数的特性及使用场景;4.C++11成员初始化新特性;5.友元函数和友元类的定义与使用限制;6.内部类的定义及其作为外部类友元的特性。文章通过代码示例详细演示了这些核心概念的实际应用场景及注意事项。
2025-08-25 07:41:49
927
原创 【C++】类和对象--日期类Date补充及流提取、流插入
本文主要介绍了C++中Date日期类的三个重要补充内容:1. const成员函数的使用场景和注意事项,包括权限问题;2. 取地址操作符重载的实现及适用场景;3. 流提取(>>)和流插入(<<)运算符重载的详细实现方法。重点讲解了如何通过友元函数实现自定义类型的输入输出操作,并解决连续输入输出的返回值问题。文章通过具体代码示例展示了const成员函数、流操作符重载的实现细节,帮助读者深入理解这些重要概念在实际编程中的应用。
2025-08-25 07:41:12
867
原创 【C++】类和对象--一篇带你解决运算符重载实例--日期类
本文通过实现一个日期类(Date)来巩固C++运算符重载知识。主要内容包括:1. 实现日期类的基本功能,如构造函数、拷贝构造等;2. 重载比较运算符(==,<,<=,!=,>,>=),通过复用基础运算符减少代码量;3. 实现日期加减运算(+=,+,-=,-),注意处理跨月/跨年情况;4. 重载自增/自减运算符(++前置后置,--前置后置),利用参数区分前后置;5. 实现日期相减运算,计算两个日期之间的天数差。文中通过代码示例详细演示了每个运算符重载的实现方法,并提供了测试结果验证正确
2025-08-21 15:21:13
806
5
原创 【C++】类和对象--类中6个默认成员函数(2) --运算符重载
C++中的运算符重载概念:运算符重载的参数规则(操作数数量对应参数数量,成员函数隐含this指针),并指出传引用比传值更高效。5个不能重载的运算符(::、.、.*、?:、sizeof)
2025-08-08 21:01:55
687
原创 【C++】类与对象--类中的6个默认成员函数(1)
通过本篇你可以比较深入地了解到,6个默认成员函数中的构造函数、析构函数、拷贝构造函数同时篇末留了一个问题,深复制和浅复制的区别?
2025-07-29 11:29:35
868
1
原创 【C++】在C++中空指针用NULL来初始化还合适吗?
通过阅读这篇文章,大家可以对于空指针的初始化有个比较深入的了解。通过对比C++98和C++11的NULL和nullptr,来说明nullptr的优越性
2025-07-16 08:46:58
583
1
原创 【C++】带你一篇了解什么是OPP(面向对象编程),什么是封装?类和对象(上)
本文主要介绍了面向对象编程与面向过程编程的区别,以及C++中类的定义和使用。首先对比了两种编程范式:面向过程强调算法步骤,而面向对象关注数据和对象交互。通过足球统计案例展示了两种编程思维差异。然后详细讲解了C++类的定义方式、访问限定符(public/private/proprotected)的作用,以及封装的概念和优势。文章还解释了类的作用域、实例化过程,并分析了类对象的内存模型:成员变量存储在对象中,成员函数存放在公共代码段。最后指出类的大小仅包含成员变量,空类占用1字节空间。
2025-07-14 23:06:02
1264
2
原创 【C++】auto关键字 C++入门(5)
C++11中auto关键字被重新定义,从存储类修饰符变为类型推导指示符。auto让编译器在编译时自动推导变量类型,必须初始化且不能用于函数参数或数组声明。auto可与指针(*)、引用(&)结合使用,同一行多个auto变量类型必须一致。auto特别适用于新式for循环,配合引用可修改原数组元素。这种自动类型推导简化了代码编写,同时保持了类型安全性。
2025-07-13 21:01:44
841
1
原创 【C++】内联函数inline以及 C++入门(4)
C++内联函数(inline)的概念、作用及特性。内联函数对于编译器来说是一个建议,不代表使用了inline修饰,就一定在编译时就会使用函数体替换函数调用。
2025-07-11 22:37:15
790
1
原创 【C++】全套数据结构算法-线性表讲解(1)
在学习c++的同时复习一遍数据结构(复习的会更加深入一些),会深入底层一些(内存之类的)。然后加上题解,准备笔试题。
2025-07-11 15:58:10
1001
1
原创 【C++】函数重载底层原理 C++入门(2)
C++实现函数重载的底层机制是修改了函数命名规则,在符号表中加入了参数类型信息(如_Z3Addid),而C语言仅保留函数名导致无法区分同名函数。
2025-07-02 15:28:13
759
原创 【C++】HelloWorld解析 C++入门(1)
这个暑假开始c++语言的学习,因为经过Java的学习后还是觉得c++要更深入一些,偏向底层。然后在学习C++的过程中,要结合之前学过的C语言和数据结构知识,希望能写出优质的C++文章。与君共勉!
2025-07-02 15:27:53
1338
1
原创 SQL ConcurrencyControl(并发控制)
Example:Schedule ASchedule BSchedule CSchedule DSchedule E从数据约束一致性来看,模式A、B、C是可串行化的,D的结果显然不满足条件,但是更改一下D的运算,E就能通过数据约束一致性检查,所以从逻辑上讲模式D和E都是错误的,所以总结来说,判断一个调度是否正确,应该是检查调度中的read和write的执行顺序会不会导致数据约束不一致的可能。
2025-06-11 09:47:13
1217
原创 SQL Indexes(索引)
索引是加速数据库查询的关键数据结构,主要有聚焦索引(每表只能有一个,物理存储顺序与索引一致)和非聚焦索引(SQL Server默认类型)。虽然能加速查询,但会降低数据修改效率。非聚焦索引通过存储聚焦索引关键字定位数据,当物理存储顺序改变时需重建索引。
2025-06-03 09:35:02
1345
原创 SQL Views(视图)
数据库视图的概念、类型及基本操作视图分为虚拟视图(仅查询构造)和物化视图(实际存储)两种类型。通过INSTEAD OF触发器实现虚拟视图修改的方法
2025-06-02 15:51:39
898
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅