- 博客(47)
- 收藏
- 关注
原创 【QT控件属性(上)】——enable&&geometry&&windowlcon&&windowOpacity
在Qt的世界里,每个控件都像一位精心打扮的演员🎭,而属性系统就是它们的"化妆间"和"舞台调度中心"。
2025-04-20 14:55:28
861
2
原创 【Qt】——理解信号与槽,学会使用connect
信号与槽(Signals & Slots) 是Qt框架独创的一种对象间通信机制,用于替代传统的回调函数和事件监听模式。它允许对象在特定事件发生时自动触发其他对象的操作,而无需直接耦合。
2025-04-20 12:19:26
1749
1
原创 【算法】——学会floodfill算法,周围都是舒适区
想一键填满图中的封闭区域?游戏角色为何不会穿墙?这背后都藏着Flood Fill算法的魔法!
2025-04-15 12:47:16
1111
50
原创 【算法】——位运算,最装的解决问题方法,你值得拥有
如果数组中的每个元素都恰好出现三次,则将这些元素均转换成二进制,记录每个元素的每个比特位上1的次数,这个次数一定是可以被 3 整除的。而如果数组中,有一个元素出现一次,那么该比特位的1的次数就不能被3整除,会留余数1。我们就可以通过对32个比特位上1的次数被3整除后的余数,来还原只出现一次的数字!两个同样的整数,转换成二进制,比特位是一样的,每个1出现的位置都应该是相同的。"在高手眼中,整数的本质是二进制串,而位运算就是操纵它们的魔法咒语""在计算机的世界里,真正的黑客不写代码,他们直接操纵比特。
2025-04-15 11:10:24
714
原创 【C++】——lambda表达式
当你第一次看到 [ ](){ } 这堆符号时,是不是觉得像在破译外星密码?🛸 而现在,你已经掌握了这把瑞士军刀般的语法利器!
2025-04-14 15:05:31
929
2
原创 【算法】——链表问题来多少,我就解决多少!
链表问题正是算法世界里的"花式跳绳"——看似简单的基础动作(增删改查),却能组合出各种让人眼花缭乱的难题。但一旦掌握核心技巧,你就能像算法高手一样,轻松玩转这些"数据绳索"!
2025-04-14 10:49:51
841
原创 【高精度算法(一)】——想精益求精?高精度算法必不可少!
高精度算法让我们突破了数据类型的限制,实现了超大数的精确计算。从加法、减法到乘法,每一步都还原了最朴素的竖式运算逻辑,却为密码学、科学计算等领域提供了关键支持。
2025-04-13 21:14:04
988
1
原创 【算法】——会了快速排序,排序数组简直so easy
想象一下:你面前有一堆杂乱无章的扑克牌🃏。快速排序就像一位经验丰富的荷官,每次都能精准地选出一张"王牌"(pivot),眨眼间就把整副牌分成"比王牌小"和"比王牌大"的两堆。这种"分而治之"的魔法,正是快速排序的灵魂所在!
2025-04-11 13:17:12
1373
24
原创 【算法】——会了二分查找,对O(logn)真的很敏感
在这趟二分查找的探索之旅中,我们从最基础的模板出发,一路解锁了各种神奇的应用场景!无论是经典的有序数组查找🔢,还是充满挑战的山脉数组峰顶定位🏔️,二分查找都用它那O(log n)的超高效率惊艳了我们。记住这三个黄金法则:1️⃣ 数据要有序(或部分有序)📈2️⃣ 问题要可二分(能通过中间值判断方向)🎯3️⃣ 边界要明确(知道什么时候该收网)🎣掌握了这些,你就能像算法界的福尔摩斯一样🔍,在各种数据迷宫中快速找到正确答案!下次遇到搜索问题,不妨先问问:这里能用二分查找吗?
2025-04-11 09:00:07
964
2
原创 【算法】——佐助们一看就会的滑动窗口
记住,当你遇到需要处理连续子序列、且具有明确约束条件的问题时,不妨考虑滑动窗口这个利器。它不仅能帮你提升算法效率,更能培养你对问题边界条件的敏感度。
2025-04-10 19:03:34
817
1
原创 【算法】——一键解决动态规划
动态规划是一种将复杂问题分解为相互关联的子问题的算法思想,其核心在于利用最优子结构和避免重复计算来提升效率。我们通过定义状态、建立转移方程、初始化边界条件和确定计算顺序这四个关键步骤,可以系统性地解决各类动态规划问题。无论是求最值、处理序列问题,还是解决背包或状态机问题,动态规划都展现出强大的建模能力。记住,许多看似复杂的问题,往往都能通过寻找子问题之间的递推关系来优雅解决。动态规划的魅力就在于它用空间换时间的智慧,让原本可能指数级复杂度的问题变得可解。
2025-04-10 14:08:17
1257
13
原创 【Linux】——手撕线程池、简易线程池
在现代计算机编程领域,随着多核处理器和分布式系统的广泛应用,并发编程变得越来越重要。而线程作为实现并发的基本手段之一,其重要性不言而喻。然而,在实际的应用开发中,如何高效地管理和调度线程,以充分利用系统资源并提高程序的性能,一直是一个具有挑战性的问题。线程池作为一种被广泛应用的解决方案,为解决这一难题提供了一种优雅而有效的方法。它通过预先创建一定数量的线程,并合理地分配和管理任务,避免了频繁创建和销毁线程所带来的开销,同时也能更好地控制和协调线程的执行,从而显著提高程序的并发性能。
2025-04-04 10:17:18
913
4
原创 【C++】——这一篇彻底弄懂智能指针,再也不怕面试
智能指针是一个可以帮我们管理动态分配内存的一个类智能指针就像一个保姆或者管家,对指定内存进行一条龙管理我们只需要将需要管理的内存传递给它,智能指针接收后,就会对该内存进行管理正常这些管理都是我们手动管理的,有了智能指针,它就会帮我们搞定一切你再也不用担心delete了,智能指针会自动帮你delete就相当于给动态分配的内存找了一个保姆,我们再也不用瞎操心你只需要将内存交给它即可,一切的一切都由它来安排今天我们主要介绍三个智能指针类由C++98推出的auto_ptr。
2025-03-28 17:23:12
825
38
原创 【Linux网络】——Socket网络编程
在当今数字化的时代,网络通信已经成为计算机领域不可或缺的一部分。无论是日常的网页浏览、社交媒体交互,还是大规模的企业级数据传输,都离不开高效可靠的网络通信。而在Linux操作系统中,Socket网络编程是实现各种网络应用的基础技术。通过使用Socket编程,开发人员可以在不同的计算机之间建立连接,实现数据的发送和接收,为各种网络应用程序的开发和部署提供了强大的支持。
2025-03-26 18:08:24
1018
8
原创 【Linux线程】——线程同步&&线程互斥
在计算机系统这个庞大而复杂的数字宇宙中,线程如同繁星般繁多且活跃。它们各自在自己的轨道上运行,承载着数据处理、任务执行的重任。然而,就像现实世界中的天体有时会相互靠近、碰撞,线程之间也会因为资源的共享和交互而产生一系列的“碰撞”问题。在这样的背景下,线程同步和互斥就像是这个宇宙中的引力法则和空间规则,保障着线程们的有序运行,避免混乱和冲突。让我们一同踏上探索线程同步与互斥的奇妙之旅,揭开它们神秘的面纱。Linux线程的互斥与同步是一个充满挑战与魅力的技术领域。
2025-03-25 16:40:28
1267
32
原创 【C++】——C++11新特性
C++,这门在系统开发、游戏开发、嵌入式等众多领域都占据主导地位的编程语言,一直在不断进化。C++11就像是C++家族中的一颗璀璨明星,闪耀着无数令人惊叹的新特性。如果你还在使用传统的C++编码方式,那你可能正在错过许多现代编程的便捷与高效。想象一下,用更少的代码编写出性能更高的程序,轻松应对复杂的并发场景,还能享受更加简洁和安全的内存管理。C++11就能让这一切成为现实。在这篇博文中,我会一点点揭开C++11新特性的神秘面纱,让你看到C++在这次重大更新之后所蕴含的无限潜力。
2025-03-24 15:43:48
1401
50
原创 【Linux线程】——线程概念&&线程接口
在当今复杂而高效的计算机系统中,多任务处理已经成为了不可或缺的核心能力。Linux操作系统以其卓越的性能和广泛的适应性,成为了众多开发者和系统管理员的首选平台。而线程,作为进程中的执行单元,是实现多任务并发执行的关键技术之一。Linux线程的实现机制为开发者提供了丰富的工具和接口,使得我们能够充分利用系统资源,提高程序的运行效率和响应速度。本文将深入探讨Linux线程的相关概念、原理和实践应用,为读者呈现一个全面而深入的Linux线程技术体系。
2025-03-22 14:05:12
772
5
原创 【Linux】——进程状态&&僵尸进程&&孤儿进程
进程的状态反映了它在执行过程中的不同阶段,例如创建、就绪、运行、阻塞和终止等。这些状态之间的转换由操作系统的调度算法和进程的行为共同决定。通过了解进程状态的变化,我们不仅可以更好地理解程序的执行流程,还能在开发过程中更高效地调试和优化代码。在本篇博客中,我们将深入探讨进程的几种主要状态,分析它们之间的转换关系,并结合实际应用场景,帮助读者掌握进程状态管理的核心概念。无论你是操作系统初学者,还是希望进一步巩固相关知识的开发者,相信本文都能为你提供有价值的参考。
2025-03-20 20:22:24
6466
14
原创 【Linux进程】——进程的程序地址空间
在Linux系统的神秘世界里,进程就像是一个个小工匠,各自忙碌地完成着不同的任务。你是否想过,每个进程在自己的“工作空间”——程序地址空间里,是如何有条不紊地管理数据、代码和各种资源的呢?这就如同每个人有自己的房间,里面摆放着不同的东西,每一个角落都有其特定的用途。对于想要深入了解Linux系统运行机制的朋友来说,探究进程的程序地址空间就像是拿到了一把打开理解操作系统内部奥秘的钥匙。今天,就让我们一起踏入这个充满趣味和挑战的领域,揭开Linux进程程序地址空间的神秘面纱。
2025-03-20 20:03:56
840
4
原创 【Linux】——轻松搞定进程fork
在现代计算机系统中,多任务处理已经成为一种常态。从服务器上同时处理多个用户请求,到我们的个人电脑上各种软件后台默默运行的小任务,这一切的背后都离不开进程的管理。而在创建新进程的技术手段中,fork函数可谓是老牌且经典的“选手”。无论是在类UNIX系统的开发,还是在深入了解计算机系统运行机制的学习过程中,理解fork都是非常重要的。无论你是一个想要深入学习操作系统底层原理的开发者,还是仅仅对计算机内部运行机制充满好奇的探索者,这篇关于fork的博文都将为你打开一扇深入了解的大门。
2025-03-19 18:05:25
1080
14
原创 【Linux】——看完这一篇,99%的人都懂进程
你是否曾经好奇,当你打开一个网页、运行一个软件或者执行一个命令时,Linux操作系统背后究竟发生了什么?是如何有条不紊地处理这些任务的呢?答案就隐藏在Linux操作系统神秘的“幕后英雄”——进程之中。进程,这个看似抽象的概念,却在Linux的世界里扮演着至关重要的角色。它们如同城市的交通网络,将各种资源紧密地连接在一起,确保系统的正常运转。现在,就让我们一同探索这个神秘的领域,揭开Linux操作系统进程的神秘面纱,看看这些隐藏在幕后的“小精灵们”是如何施展魔法的吧!
2025-03-19 17:49:45
599
6
原创 【C++】——queue&&stack&&适配器
在C++标准模板库(STL)的广阔世界中,容器是构建高效程序的基石。它们如同一个个精心设计的容器盒,以不同的结构和规则存储、管理数据,满足程序在不同场景下的需求。queue和stack作为STL容器家族中的重要成员,以其独特的数据结构和操作特性,在算法设计、程序逻辑构建以及资源管理等多方面发挥着不可替代的作用。接下来,让我们开启对queue和stack这两个STL容器的深入探索之旅。理解和掌握queuestack。
2025-03-17 22:17:41
966
15
原创 【C++】——面试问我new和delete?后悔没看这篇文章
在C++编程的世界里,内存管理是一项至关重要且基础的任务。有效的内存管理不仅关乎程序的性能、稳定性,更直接影响着软件的可靠性和可维护性。而new和delete作为C++中用于动态内存分配和释放的核心机制,承载着程序员对内存精确掌控的重任。从简单的单对象创建到复杂的对象数组管理,从内存的高效利用到避免潜在的内存泄漏风险,new和delete的合理运用贯穿于C++程序开发的始终。深入理解它们的工作原理、使用方法以及可能引发的问题,是每一位C++开发者走向精通的必经之路。本文将深入剖析new和delete。
2025-03-17 10:55:10
1889
13
原创 【C++】一文吃透STL容器——list
list,作为STL中的双向链表容器,以其灵活的操作方式和特定的性能特性,在众多编程任务中崭露头角。与数组等其他容器相比,list有着自己独特的内部结构和行为模式。它不需要像数组那样进行大规模的内存重新分配来适应元素的增减,而是能够高效地在任意位置进行元素的插入和删除操作。无论是在需要频繁修改元素顺序的算法中,还是在构建复杂的数据结构关系时,list都能发挥不可替代的作用。本文将深入剖析C++ STL中的list。
2025-03-16 19:27:09
1252
13
原创 【C++】—— 一篇文章解决面试 继承&&菱形继承
在C++这个广袤而神秘的编程世界里,继承宛如一颗璀璨的明珠,散发着独特的魅力。它是连接代码世界的纽带,也是实现代码复用与扩展的神奇魔法。当我们深入探索C++继承的奥秘时,就仿佛开启了一段奇妙的旅程,在这个旅程中,我们将领略到面向对象编程的博大精深,感受到代码在继承的力量下焕发出的无限活力。每一行代码,都是我们对世界的理解和表达;每一次继承,都是我们对程序设计的又一次探索和创新。在这个过程中,我们不仅能够提高代码的效率和质量,更能够培养自己严谨的逻辑思维和创造力。
2025-03-16 14:08:35
1378
1
原创 【C++】——看完这 1 篇文章,你绝对懂多态
C++作为一种广泛应用的面向对象编程语言,提供了众多强大的特性来支持程序的设计和实现。其中,多态无疑是C++面向对象编程中的核心概念之一,对提高代码的复用性、可维护性和可扩展性具有至关重要的作用。本文旨在深入剖析C++多态的概念、原理和实现机制,通过具体的代码示例和详细的解释,帮助读者全面理解多态的内涵和用法。希望通过对这一主题的探讨,能够为读者在C++面向对象编程的学习和实践中提供有益的指导和参考。
2025-03-16 14:07:26
605
6
原创 【Linux进程通信】————匿名管道&命名管道
没有人是一座孤岛——约翰·多恩布道词这句话告诉我们,没有人是孤独的,我们目录前言进程通信1.1进程通信目的1.2进程通信方式管道匿名管道匿名管道的创建匿名管道的使用匿名管道本质命名管道命名管道创建命名管道的使用命名管道的本质管道通信的四种情况管道的特点寄语既然存在于世,必定会与他人产生联系,与他人交流,人不能脱离人活下去,不能脱离社会,与世隔绝。一个人的知识,力量是有限的,当我们遇到一个人无法解决的难题时,我们就需要与他人合作,或者依靠交流得到解决办法,克服难题。
2025-03-16 12:54:55
835
1
原创 Linux文件IO——缓冲区&&磁盘上的文件管理
删除一个文件的本质,就是将其inode Bitmap中的比特位置为0,将其Block Bitmap中的比特位置0,这样在逻辑上,该文件就被删除了,当该inode被重新使用,数据块内容被覆盖,才是真正被删除。修改一个文件的本质是通过struct inode结构体中的数据块指针找到对应的数据块,修改数据块中的内容。如果权限检查通过,文件系统会为新文件分配一个inode,用于存储文件的属性(如文件大小、权限、时间戳等)。同时,文件系统还会为新文件分配必要的数据块,用于存储文件内容。
2025-03-14 10:02:37
678
原创 Linux下的文件管理——文件描述符&重定向
文件是我们保存资料的重要工具,而我们只会对其进行简单的操作,打开,对内容编辑,却不知道其到底是存在于何处,又怎么被我们打开,使用?应用层打开文件的时候,操作系统会做哪些事情?文件存在于哪里?文件一般被保存在磁盘当中,当被用户打开的时候,该文件的内容与属性会被加载到内存空间中,此时文件存在于内存当中,并且无法同再次打开。即当文件没有被打开的时候,文件存储在磁盘上,当文件被打开的时候,会被加载到内存空间上,此时文件存在于内存空间之上。那么多的文件,我们是怎么管理的,或者是谁帮我们管理的?
2025-03-13 10:27:11
799
原创 【C++】一文熟练STL容器——vector
在C++的广袤世界里,vector就像是一颗璀璨的明珠,散发着独特的魅力。它以其简洁高效的特性,为我们在数据的海洋中航行提供了可靠的导航和承载工具。通过对vector的深入探索,我们不仅掌握了一种强大的编程利器,更领略到了计算机科学中蕴含的智慧与美妙。希望这篇关于vector的介绍能如同一盏明灯,照亮你在编程道路上前行的方向,让你在未来的探索中更加游刃有余,创造出更多精彩的程序篇章。
2025-03-13 10:02:09
1100
原创 【C++类和对象(四)】——初始化列表&&友元&&构造优化等
构造函数是用来完成对类对象初始化的但构造函数函数体中对属性的“初始化”,并不是真正的初始化,而是赋值真正的初始化,在函数体之前
2024-12-12 14:33:04
1270
1
原创 【C++类和对象(三)】——赋值重载&&类的const函数&&取地址
🔥一个类中即使什么都不写,也并不是真正什么都没有,会有六个默认生成的默认函数,供给一个类的正常使用。🔥了解每个默认成员函数的特点与使用方式,可以使你对类的理解和使用更上一层楼!
2024-12-12 13:44:09
1039
原创 【MySQL】——用一文解决@基础函数&&group by
🔎你现在认清函数的重要性了吗?它是某一功能的实现,亦是代码的集合有了我们自己写的函数,我们不用重复写一些代码有了内置函数,我们可以轻松搞定一些复杂的问题一句话:🔥编程不能没有函数,就像西方不能没有耶路撒冷🔥本章节重点——MySQL的函数&&如何分组
2024-12-09 18:37:08
1100
原创 【MySQL】——用一文领悟表的增删查改
在🔥《库操作&&表操作》🔥一文中,我们已经知道如何对表进行创建、修改、删除但那是对表的结构而言,具体怎么对表的数据进行操作,我们还没有讲解这也是本章的介绍对象——表的增删查改本文章带大家认识了表的增删查改的操作但要彻底熟悉,需要勤加练习,多多实操才是。
2024-12-07 18:15:18
773
原创 【MySQL】——MySQL约束的良苦用心
通过规则,规范使用者的操作——约束数据类型本身也是一种约束,倒逼我们插入符合字段类型的数据但数据类型约束很单一,就需要一些额外的约束,更好保证数据的合法性本次文章的重点——认识约束
2024-12-06 14:23:09
1033
原创 【MySQL】——看懂MySQL数据类型,这一篇就够啦!
类型,是编程绕不开的一个话题类型是为了数据更好地存储和获取而存在的每一种编程语言因为特殊原因,也会对自己的类型做一些独特的调整本次文章重点——MySQL中的数据类型
2024-11-29 10:41:35
861
原创 【MySQL】——库操作&&表操作
怎么创建数据库?怎么在数据库下创建表?创建数据库后,怎么对数据库进行其他操作?创建表后,又怎么对表进行操作?本次介绍的重点是——库操作以及表操作
2024-11-28 19:34:37
864
原创 【Linux网络(六)】——MAC帧协议
网络层的IP协议负责对网络中的数据包进行路由,路径选择,重点在告诉数据包——到哪里去而数据链路层的协议,负责局域网中的具体通信,重点在告诉数据包——怎么到达
2024-11-28 18:38:49
1076
原创 【C++类和对象】——构造&&析构&&拷贝构造
当一个类中没有属性、没有方法的时候,我们将其称为空类。空类虽然没有内容,但其仍能实例化对象,但对象没有任何作用,只是单纯地占据空间但空类中,真的就什么都没有吗?答案是否定的,明面上什么都没有,但编译器会自动为其充实内容,生成默认成员函数!
2024-11-26 10:58:00
996
原创 【Linux网络(五)】——IP协议
前情提要应用层协议——让用户进程看得懂传输层协议——为数据保驾护航,防止传输过程中,数据出现错误本次文章主讲IP协议,它属于网络层的协议,其主要作用是解决数据在网络中怎么走的问题。
2024-11-25 19:09:09
1016
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人