自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 放弃没用的本地部署残血版DeepSeek,教你如何白嫖满血版DeepSeek(包真,包成功,包简单)

春节期间,热度最高的当属DeepSeek了,嘟嘟春节期间也各种安利身边朋友使用DeepSeek,但是随着时间的发酵,大家会发现DeepSeek经常不能用,那是因为DeepSeek受到了大规模恶意攻击,IP地址都在美国。可以发现,最近标红的就是故障。如果你遇到使用的时候,提示服务器繁忙,就大概率是被攻击了由于DeepSeek是开源生态,模型都提供了,所以有一种解决方案是本地部署,然后利用一些第三方软件来接入这个模型来使用。可能有些人对这些不同数值的模型不大理解,这里简单说明下。

2025-02-04 00:14:38 8772 10

原创 【Linux入门】轻松掌握20+必备Linux基本指令,告别命令行恐惧!

致力于推广Linux操作系统的学习和应用,帮助初学者和开发者掌握核心指令,提升工作效率。文章详细介绍了Linux在服务器、开发、嵌入式等领域的重要性,并提供了学习Linux指令的实用指南。通过分类讲解文件和目录导航、管理、内容查看等核心指令,如pwd、cd、ls、mkdir、cp、mv、rm等,帮助读者快速上手Linux命令行操作。文章强调开源的社区精神,鼓励读者为Linux社区贡献力量,共同推动技术的进步。

2025-05-19 23:50:00 878 1

原创 C++继承完全指南:从语法到设计模式----图解原理+工业级代码示例+陷阱规避

本文深入探讨了C++继承机制的核心原理与实战应用。首先通过Qt框架的成功案例与某电商系统的失败教训,对比分析了继承的优势与陷阱,指出合理使用继承需满足is-a关系且基类稳定。随后详细解析了单继承与多重继承的内存布局、虚函数机制的性能代价(约27%下降)以及对象切片等常见问题。文章重点介绍了现代C++替代方案,如组合模式、策略模式、类型擦除和CRTP,并通过性能数据对比展示了其优势。针对多重继承,揭示了编译器实现差异及虚继承的高成本(构造耗时增加150%),提出了接口隔离等解决方案。

2025-04-07 22:33:27 829

原创 STL容器终极解剖:C++ vector源码级实现指南 | 从内存分配到异常安全的全流程避坑

需要注意:不能直接使用delete[],会导致程序崩溃(vector<vector< T >>),需要挨个调用~T()用于创建 vector 对象,包括默认构造、拷贝构造以及根据指定元素个数和范围构造等。📌 reserve预分配可减少87%扩容开销</知识卡片>:负责释放 vector 对象占用的资源。: 迭代器本质是原生指针的封装,需实现。_end_of_storage指针。首次push_back。

2025-02-24 00:06:42 796

原创 [特殊字符] 零成本实现AI实时双语字幕!硅基流动+沉浸式翻译全攻略

你是否厌倦了啃生肉视频?想无压力观看英文课程/国际会议直播?本文教你无需付费,3步实现网页/本地视频的实时AI字幕翻译,支持中英双语对照显示!

2025-02-08 15:06:55 1245

原创 C++模拟实现string完整教程(附源文件)

此外,程序在遇到异常时,应确保资源得到妥善释放,保证程序的鲁棒性。例如,在赋值运算符的实现中,如果在内存分配后发生异常,可能会导致旧资源未释放或新资源分配失败。当对象是临时的或即将销毁时,可以将其资源直接“移动”到新对象,而不是复制内容。当一个对象析构时释放了内存,其他对象会访问已释放的内存,从而引发未定义行为。动态内存管理是实现一个类的核心内容,特别是像字符串这样的类,因为它们需要根据运行时的数据长度动态分配内存。,即为新对象分配独立的内存,并将数据内容复制到新内存中,而不是直接共享原对象的内存。

2025-01-22 00:41:32 1227 1

原创 C++ 中的 string 类:全面解析与应用实践

编程中字符串至关重要。无论是构建用户界面、处理数据还是网络通信,都离不开字符串操作。C 语言里的数组处理字符串时,需手动管理内存,容易出现缓冲区溢出等错误,像字符串拼接、复制等常见操作,代码编写繁琐且易出错。C++ 的类则是强大的字符串处理工具。它能自动处理内存分配与释放,避免手动管理的风险。还提供大量实用成员函数,如拼接、查找、替换、比较等操作都很便捷,可有效提升开发效率,助力开发者专注核心业务逻辑,在 C++ 编程里处理字符串极为得力

2024-12-02 00:28:18 1338 2

原创 【C++ 篇】类之华章:超越固有模式,品味面向对象的璀璨光芒

析构函数的名称是在类名前加上符号,其定义方式与普通成员函数类似,但没有返回值类型,也不能带有参数(除了在极少数情况下用于处理特定的异常或资源释放场景,但这种情况相对较少见)。一个类只能有一个析构函数,若未显式定义,系统会自动生成默认析构函数。例如:public:// 析构函数声明~MyClass();// 析构函数定义// 这里进行资源清理等操作构造函数的名称与类名相同,它没有返回值类型,甚至连void也不能有。其主要目的是在对象实例化时,为对象的数据成员分配内存空间并进行初始化操作。

2024-11-11 22:46:31 739

原创 C++ 类与对象入门:基础知识与定义

在C++中,类是一种用户自定义的数据类型(类似于C语言中的struct),它将数据(属性)和操作这些数据的函数(方法)封装在一起。类是面向对象编程的核心概念之一,它允许我们以一种结构化的方式组织代码,提高代码的可重用性和可维护性。类名:类的名字应该具有描述性,以便其他开发者能够理解该类的用途。成员变量:类内部的数据,也称为属性。成员函数:类内部的函数,用于操作成员变量。对比C语言来看,"内容"不过多了一个成员函数(但是大有讲头)// 成员变量int age;public:// 成员函数。

2024-10-24 23:21:52 881 1

原创 成为大牛第一步 —— C++ 入门基础

特性命名空间内可以定义变量 / 函数 / 结构体等可以嵌套定义本质是定义一个域,这个域跟全局域各自独⽴,不同的域可以定义同名变量多文件定义同名域被认为是同一个域//命名空间中可以定义变量/函数/类型int val;缺省参数在头文件的声明不可以出现缺省!!!会出现重定义错误,在声明给缺省的形参头文件中源文件中重载函数。

2024-09-30 00:29:42 1026

原创 C语言手撕归并——递归与非递归实现(附动画及源码)

归并排序的基本思想是将待排序的序列分成若干个子序列,每个子序列都是有序的。然后再合并这些子序列形成最终的排序序列。这个过程可以递归地进行,直到所有的子序列都只包含一个元素为止。核心步骤分解:将序列分为两半。解决:递归地对每一半进行排序。合并:将两个已排序的子序列合并成一个单一的有序的序列动画演示归并排序的性能最佳情况平均情况最差情况空间复杂度: 𝑂(𝑛)O(n)稳定性: 归并排序是稳定的排序算法,即相等的元素在排序前后保持原有的相对顺序。递归代码实现。

2024-09-08 16:25:39 858

原创 手撕快排——三种实现方法(附动图及源码)

🤖💻👨‍💻👩‍💻🌟🚀🤖🌟👨‍💻👩‍💻👨‍💻👩‍💻🚀是一种高效的排序算法,广泛应用于各种场景。它采用策略,将一个数组分成两个子数组,然后递归地对这两个子数组进行排序。本文将介绍三种快速排序的实现方法,并附上相应的源码。⚙️一、快速排序的基本原理一个基准元素(pivot)分成两个子数组递归合并O(n log n)O(n log n)O(n^2)后文我们将给出优化方案O(log n)📚三、实现霍尔方法是快速排序原始版本中使用的分区方法。

2024-08-16 23:08:28 1247 1

原创 时间复杂度与空间复杂度(小白向)

目录大O表示法时间复杂度打印数组二分查找空间复杂度常数空间复杂度 O(1) 示例:交换两个变量的值线性空间复杂度 O(n) 示例:数组复制对数空间复杂度 O(log n) 示例:斐波那契数列(递归版)优化策略 大O表示法的字母O是函数的,也被称为,即字母O代表。用大O符号描述函数通常只提供函数增长率的一个上界常见的有:O(1),O(n),O(n²) ,O(nlogn),O(logn)。 时间复杂度和空间复杂度是计算机科学中用于评估算法效率的重要指标。这两个概念可以帮助我们了解算法

2024-06-30 20:15:14 845

原创 C语言实战:贪吃蛇(万字详解)

用于防止头文件被重复包含。: 禁用Visual Studio中的某些不安全函数警告,比如使用scanf等。1:0): 自定义宏,用来检查给定虚拟键是否被按下。是Windows API函数( 配合虚拟键码使用 ),用于检查按键状态。: 定义初始蛇的长度为5个单位。和: 定义游戏地图的宽度和高度,均为26个单位。: 定义蛇的移动方向,包括上、下、左、右。enum STATE定义蛇的状态,包括运行中、暂停、自杀死亡、撞墙死亡。: 蛇的节点结构体,包含位置坐标(x, y)和指向下一个节点的指针。

2024-06-05 16:49:13 1945

原创 力扣【Leetcode】刷题1(持续更新中...)

🚀🌈 欢迎莅临,这里是的起航之地 🌈🚀在这里,我们将一同,发掘信息组织的奥秘宝藏🔑。每一步前进,都是向着成为编程大师的道路迈近,而我,乐意成为你征途上的北极星🌟。0.链表的中间结点1.面试题 02.02.返回倒数第k个节点。

2024-05-26 01:08:34 979

原创 C语言实现单链表操作详解:从基础到进阶(动图版)(附源码)

在数据结构的广阔领域中,线性表是一片丰富多彩的天地,其中包括了数组、顺序表、链表和队列等诸多形态。顺序表作为数组的直接延伸,其物理存储的连续性虽保证了访问的便捷,但也暴露出在动态数据管理上的短板——空间利用率低下及频繁扩容导致的效率瓶颈。正是基于此,链表作为一种创新的数据结构设计,凸显了其不可替代的价值。那么,我将带领大家探索链表的奥秘链表作为数据结构的璀璨明珠,其灵活性与高效性在处理动态数据集时大放异彩,克服了顺序表的固有局限。

2024-05-09 22:13:13 3078 15

原创 C语言实战教程:构建简易通讯录管理系统

本通讯录管理系统旨在实现基本的联系人信息管理功能,包括添加、删除、查询、修改联系人信息以及显示通讯录列表。(头文件)(功能实现)和main.c(主函数及程序入口)。通过这个通讯录管理系统的实践,我们不仅复习了C语言的基础知识,还掌握了如何设计和实现一个小型项目。重点在于理解数据结构的选择、内存管理的重要性以及模块化编程的优势。此项目还可以进一步扩展,比如增加排序功能、采用文件存储实现持久化通讯录,或是引入更复杂的错误处理机制。

2024-04-29 23:43:05 939 8

原创 线性数据结构:深入探究顺序表

💡目录【目标】【线性表 (Linear List)】【顺序表详解】顺序表主要特性接口实现尾插尾删首插首删线性表的逻辑结构清晰,易于理解和实现。根据存储结构的不同,线性表可以分为以下两类:顺序表:线性表的元素在计算机内存中按照其逻辑顺序依次存储,占据一片连续的存储空间。在C语言中,可以使用数组来实现顺序表。 链表:线性表的元素在内存中不必连续存放,每个元素(称为节点)包含数据域和指针域,指针域用于存储下一个元素的地址。链表分为单链表、双链表和循环链表等多种形式。在C语言中,链表通常通过结构体和

2024-04-26 23:27:52 665 2

原创 浮点数在内存中的存储机制与IEEE 754标准

浮点数作为计算机科学中不可或缺的数据类型,用于精确或近似表示实数。其在内存中的存储方式遵循国际标准IEEE 754,这一规范确保了不同平台间浮点数的一致性和高效处理。本文将系统性地探讨浮点数在内存中的存储原理、IEEE 754标准的关键组成部分,以及实际应用中需要注意的问题,旨在为开发者提供全面而深入的理解。

2024-04-18 23:47:13 1207

原创 深入剖析与实战演练:C/C++中的动态内存管理艺术

动态内存管理是C/C++程序员必须掌握的核心技能之一。理解其基本原理,熟练运用相关函数与运算符,遵循最佳实践,能够有效避免内存泄漏、悬挂指针等问题,提升程序的稳定性和资源效率。随着C++11引入智能指针等现代内存管理工具,动态内存管理变得更加安全便捷。善用这些工具,将使您的代码更具可维护性和可靠性。

2024-04-14 22:22:39 872 1

原创 深度解析与实战演练:C语言运算符优先级详解

在C语言编程过程中,理解和掌握运算符的优先级至关重要,它直接决定了表达式的计算顺序,从而影响程序的正确性和效率。本文旨在系统地梳理C语言中各类运算符的优先级规则,并通过实例演示来加深读者的理解。以上就是C语言运算符的优先级概述,希望这些详细的示例能帮助您更好地理解每种运算符的使用以及其优先级。在实际编程中,请务必注意运算符优先级,必要时可以通过添加括号明确表达式的计算顺序。:括号内的表达式优先级最高,会先于其他运算执行。结构体和联合体成员运算符。:用于访问数组元素。

2024-03-27 16:56:41 940 1

原创 深入探讨与模拟实现C语言中的qsort函数(附源码)

首先,编写一个接受任意类型的数组和比较函数作为参数的冒泡排序函数。由于C语言的冒泡排序不能直接应用于不同类型的数组,所以需要用到void指针和自定义的比较函数。

2024-03-26 07:00:00 2747 7

原创 C语言实现:不触动警报装置的最大偷窃金额计算

假设你是一位计划周密的“小偷”,面对沿街一排安装有特殊防盗系统的房屋。每间房屋内都有一定的现金数量,而相邻房屋之间存在连通的防盗系统,如果在同一天晚上两间相邻的房子都被盗,系统会立即报警。现在,我们用C语言来解决这样一个问题:如何在不触发警报的情况下,在一夜之间偷窃到最高总金额。

2024-02-28 21:18:25 449

原创 C语言实现寻找两个正序数组的中位数问题

在数据处理和算法设计中,寻找有序数组的中位数是一项常见的任务。当面对两个已排序的整数数组时,如何有效地找出合并后的数组的中位数呢?本文将通过一个C语言实例详细解析这个问题,并给出一种时间复杂度为的解决方案。给定两个非空的正序整数数组`nums1`和`nums2`,其长度分别为`m`和`n`,要求不改变数组的原始顺序,找到这两个数组合并后的新数组的中位数。

2024-02-05 19:02:34 695 1

原创 扫雷游戏的设计与实现(C 语言)

如果所点击的方块不是地雷,则会显示一个数字,该数字表示周围八个方块中地雷的数量。玩家需要根据这些数字来推断哪些方块是地雷,哪些方块是安全的,并最终找出所有非地雷的方块。如果不是地雷,则根据该方块周围的地雷数量来更新周围方块的数字显示。计数器用于显示已揭开的非地雷方块的数量和剩余的地雷数量。扫雷游戏是一款经典的单人策略游戏,玩家的目标是在最短的时间内找出所有非地雷的方块,而不触发任何地雷。使用两层循环遍历棋盘的每个位置,如果该位置没有地雷,则打印一个空格,如果有地雷,则打印地雷的数量。

2023-12-18 21:54:38 647

原创 初入C语言

在 C 语言中,main 函数是程序的入口点,程序从 main 函数开始执行。在这篇教程中,我们将介绍 C 语言的基础知识,包括变量、数据类型、控制结构、函数等。在这个程序中,我们声明了三个变量:age、weight 和 gender,并分别赋予了初始值。在这个程序中,我们定义了一个名为 add 的函数,它接受两个整数参数并返回它们的和。数组是一组相同类型的元素的集合,可以使用下标来访问数组中的元素。函数是 C 语言中的重要概念,它用于将一个大的程序拆分成多个小的模块,提高代码的可读性和可维护性。

2023-12-04 22:13:52 564

C语言实战:贪吃蛇.exe

C语言实战:贪吃蛇.exe

2024-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除