- 博客(47)
- 收藏
- 关注
原创 C++多态:理解面向对象的“一个接口,多种实现”
本文深入解析了C++多态的实现原理与关键特性。首先介绍了多态的概念,即通过基类指针或引用调用虚函数时,不同对象会产生不同行为。实现多态需要满足两个条件:通过基类指针/引用调用虚函数,且派生类必须重写基类虚函数。文章详细讲解了虚函数重写的规则,包括协变和析构函数重写等特殊情况,并对比了函数重载、重写和重定义的区别。通过内存模型分析,阐述了虚函数表的工作原理:派生类虚表会继承基类虚表内容,重写时覆盖对应虚函数,新增虚函数则追加到虚表末尾。最后探讨了动态绑定与静态绑定的区别,以及单继承和多继承中虚表的存储机制。
2025-08-13 20:51:46
777
14
原创 飞算JavaAI:重塑Java开发范式的智能引擎
飞算JavaAI是一款专为Java开发者设计的AI编程助手,通过深度优化实现垂直领域的技术突破。其核心优势包括:集成2000万行Java代码知识库、精准理解工程术语、自动规避编码陷阱,在SpringBoot项目中首次生成可用率达82%。支持云服务、混合部署和私有化三种接入方式,能智能生成代码、优化异常处理、同步文档注解。与通用模型相比,在架构设计、并发处理、版本适配等方面展现出显著优势,使原型开发效率提升至分钟级,缺陷率降低70%。作为垂直领域AI工具的代表,飞算JavaAI正在重塑开发范式,推动开发者向A
2025-08-06 08:45:54
1092
1
原创 C++:类的继承
本文主要介绍了C++中类的继承机制。内容包括:继承的概念和定义,基类与派生类对象赋值转换,派生类的默认函数,以及菱形继承问题。重点讲解了公有、保护、私有三种继承方式,派生类构造和析构顺序,静态成员继承特性。针对菱形继承带来的数据冗余和二义性问题,介绍了通过虚继承(virtual)的解决方案及其实现原理,分析了虚基表指针和虚基表的作用。文章指出多继承是C++的复杂特性之一,建议避免设计菱形继承结构,因其会增加复杂度和运行时开销。
2025-08-05 20:54:48
784
13
原创 C++:STL中的栈和队列的适配器deque
本文主要探讨了C++中容器适配器stack和queue的底层实现原理及其优势。通过分析deque(双端队列)的特性,解释了其作为stack和queue默认底层容器的原因:deque在头部和尾部操作效率高(O(1)),且空间利用率优于list,同时避免了vector扩容时的数据迁移问题。文章详细比较了不同容器的优缺点,指出deque虽不适合遍历,但完美适配stack和queue只需单端操作的需求。此外,还介绍了优先级队列的模拟实现,重点阐述了堆结构如何通过向上/向下调整算法维护特性,确保O(logn)时间复杂
2025-08-03 15:04:02
1083
7
原创 C++:STL中list的使用和模拟实现
C++中的list是STL提供的双向链表容器,采用带头双向循环链表结构。与vector不同,list支持O(1)时间复杂度的任意位置插入删除,但不支持随机访问。list迭代器通过运算符重载实现双向遍历,需特殊封装。使用方式包括push_back、insert等操作,并提供sort、merge等特有方法。模拟实现时重点在于迭代器设计,通过模板参数区分const和非const迭代器,重载解引用、递增等运算符。list的节点结构包含前后指针和数据域,通过动态内存管理实现按需分配。相比vector,list更适合频
2025-07-30 17:00:05
952
7
原创 C++:STL中vector的使用和模拟实现
本文介绍了C++中vector容器的基本概念和使用方法。vector作为STL中的可变大小数组容器,具有连续存储空间和高效访问特性。文章详细讲解了vector的构造函数、迭代器使用、空间管理(size/capacity/resize/reserve)以及增删改操作(push_back/insert/erase/pop_back),并提供了模拟实现代码。特别强调了迭代器失效问题及深拷贝的必要性。与string类类似,掌握vector有助于理解其他STL容器。建议读者结合官方文档深入学习,通过实践巩固知识。
2025-07-26 22:11:23
923
8
原创 C++string类用法
C++标准库中的string类提供了比C语言更安全、更便捷的字符串处理方式。它封装了字符串的基本操作,包括构造、赋值、长度管理、查找修改等功能。string类支持多种构造函数和赋值方法,提供size()/length()获取长度,支持下标访问和at()安全访问。查找操作包括find()和rfind(),修改操作有append()、insert()等。类还实现了比较运算、子串提取、数值转换等功能,并支持迭代器和范围for循环遍历。相比C字符串,string类自动管理内存,避免越界访问,更符合面向对象思想,使用
2025-07-20 20:51:50
578
6
原创 Linux中的git命令
本文介绍了在Linux系统中使用Git进行代码版本管理的基本流程。首先需要安装Git工具,建议使用国内Gitee平台创建远程仓库。创建本地仓库后,通过Git的"三板斧"操作:git add添加文件、git commit提交改动(需配置用户名和邮箱)、git push同步到远程服务器。文章还提到.gitignore文件的作用,以及如何查看Git配置(git config --list)和提交历史(git log)。最后给出了免密码登录的设置参考链接,为开发者提供了完整的Git使用指南。
2025-07-12 20:34:28
1078
6
原创 Linux开发工具——gcc/g++
本文介绍了Linux下使用gcc/g++编译运行代码的完整流程。gcc用于C语言,g++兼容C++和C语言。编译过程分为预处理(宏替换、去注释)、编译(生成汇编)、汇编(生成机器码)和链接(生成可执行文件)四个步骤,可通过-E、-S、-c选项分步执行。文章还对比了静态库(.a)和动态库(.so)的特点:静态库独立但体积大,动态库共享但依赖性强。最后提供了常用gcc选项说明,包括优化级别、调试信息生成等实用编译参数。
2025-07-03 19:35:56
1011
9
原创 Linux软件管理包-yum和基础开发工具-vim
本文介绍了Linux系统下的软件管理工具yum和文本编辑器vim的基本使用方法。主要内容包括:1)yum包管理器的概念与使用,包括软件安装、卸载和文件传输工具rz/sz;2)vim的多模式特性,重点讲解命令模式、插入模式和底行模式的操作指令;3)vim的基本编辑命令,如光标移动、文本复制/删除/粘贴等;4)vim的个性化配置建议。文章为Linux初学者提供了开发工具的基础使用指南,涵盖了日常开发中最常用的功能操作。通过掌握这些工具,读者可以更高效地进行Linux环境下的编程工作。
2025-06-18 16:31:19
1067
10
原创 C++模版初阶
摘要:C++模板技术通过函数模板和类模板实现泛型编程,减少代码重复。函数模板允许定义与类型无关的通用函数,编译器根据调用时的实参类型自动生成特定版本。相比函数重载,模板提高了代码复用率和可维护性。类模板同样遵循此原理,适用于创建通用数据结构。模板实例化分为隐式和显式两种方式,其中显式实例化需指定具体类型。类模板实例化后才是真正的类类型。模板技术有效解决了不同类型数据需要重复编写相似代码的问题。
2025-06-16 15:38:28
1121
8
原创 C/C++内存分布和管理
C/C++内存分布以及管理方式,包含new和delete使用方式和实现原理,让你更加理解new和delete,使用更加自如,malloc、free和new、delete的共同点和区别
2025-06-12 19:57:32
1504
14
原创 Linux中的权限
本篇讲解Linux用户切换,文件类型和属性,文件访问权限的修改指令,以及粘滞位,阅读完本篇文章可以让你对Linux有更加深刻的了解,欢迎各位阅读之后收获满满!!!
2025-06-08 20:38:29
884
10
原创 Linux基本指令(三)
时间显示指令、搜索指令、压缩解压指令以及LInux中计算器的指令在本章中都包含哦,有兴趣的可以进来瞅瞅,包令你满意滴!!!
2025-06-04 19:31:59
2726
19
原创 C++深入类与对象
在上一篇中提到了构造函数,那么这篇再来提一下构造函数,编译器自动生成的默认构造函数对于内置类型不做处理,自定义类型会调用它自己的构造函数。对于自己写的构造函数,之前是在函数体中初始化,当然不止这一种初始化,还有初始化列表的方式进行初始化,那么为什么可以在函数体中初始化还需要初始化列表呢?咱接着往下看!
2025-05-31 19:59:13
793
10
原创 Linux基本指令(二)
在Linux基本指令(一)中分享了几个指令,在这篇文章中还会继续分享我所学到的Linux指令,学习是一件很漫长的事,只有坚持下去才能看到结果,砥砺前行,未来可期。目录
2025-05-23 18:08:41
1296
12
原创 C++类与对象:六个默认构造函数(二)
在上篇提到了构造函数、拷贝构造函数、析构函数,这篇将会分享剩下默认构造函数:运算符重载、取地址及const取地址操作符重载。当学习了这些构造函数可以实现一个日期类。
2025-05-21 22:12:19
694
9
原创 C++类与对象:六个默认构造函数(一)
这篇文章带你了解构造、析构、拷贝构造函数,体验其中的奥妙,还在默认构造函数中迷茫的这篇文章不容错过,默认构造函数在C++中构造函数非常重要,各位进来学习吧
2025-05-12 21:39:49
1075
14
原创 Linux基本指令(一)
操作系统是是一款做软硬件管理的软件,而一个好的操作系统要具备安全、快速、稳定的条件,操作系统的核心工作就是通过对下(驱动设备和硬件)管理软硬件资源的手段,达到对上(应用软件)提供良好(安全、快速、稳定)的操作/使用环境。
2025-05-10 18:21:52
1093
17
原创 C++面向对象编程入门:从类与对象说起(一)
C语言是面向过程,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题,而C++面向的是对象,关注的是对象,将一件事拆解成多个对象,靠对象之间互交完成。
2025-05-08 18:53:36
1164
9
原创 【C++编程入门】:基本语法
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。
2025-04-29 21:03:30
1103
17
原创 【C++编程入门】:从零开始掌握基础语法
C++语言是通过对C语言不足的地方进行优化创建的,C++在C语言之上,C++当然也兼容C语言,在大部分地方使用C++比C更方便,可能使用C需要一两百行代码,而C++只需要五六十行。
2025-04-21 22:08:28
1164
16
原创 数据结构——快排和归并排序(非递归)
快速排序和归并排序一般都是用递归来实现的,但是掌握非递归也是很重要的,说不定在面试的时候面试官突然问你快排或者归并非递归实现,递归有时候并不好,在数据量非常大的时候效率就不好,但是使用非递归结果就不一样了,总之各有各的好。
2025-04-19 19:16:23
1393
18
原创 数据结构——八大排序算法
排序在生活中应用很多,对数据排序有按成绩,商品价格,评论数量等标准来排序。数据结构中有八大排序,插入、选择、快速、归并四类排序。
2025-04-17 20:36:30
1382
22
原创 数据结构——堆的实现和堆排序
什么是堆呢?堆其实就是数组,然后我们将数组看成树的结构,创建堆可以是大堆也可以是小堆,有堆就可以用来排序,与冒泡排序相比较效率高很多。
2025-04-06 22:26:08
771
13
原创 数据结构——队列的实现
队列:只允许在一端进行插入数据操作,另一端进行删除数据操作的特殊线性结构,具有“先进先出”的特点,进行插入数据的一端称为队尾,出数据的一端称为队头。
2025-04-02 13:24:59
562
12
原创 数据结构——栈的实现(附全部代码)
栈的实现可以用链表也可以用数组,但是数组在这里比链表更有优势,根据栈独有的特性来决定使用什么来实现才能让效率更高。
2025-03-27 19:47:55
528
9
原创 环形链表判断、入环问题
给你一个单链表如何去判断有环呢?如何求环形链表第一次入环的节点呢?在还未接触这种题之前是一点头绪都没有,十分佩服能解决的人。
2025-03-22 21:01:09
607
10
原创 数据结构 ——单链表
单链表和顺序表相比可就好太多了,效率高不少,在进行头插和头删时的效率相差最大,顺序表在进行头插和头删时时间复杂度为O(n^2),而在单链表中只需要更改几个指针就可以,效率大大提升,相信通过这篇文章可以让你清楚认识了解单链表。
2025-03-20 21:18:29
1267
12
原创 数据结构——顺序表(附全部c代码)
定义:顺序表是用一段物理地址连续的存储单元依次存储数据的线性结构,一般采用数组存储,在数据上进行增删查改操作
2025-03-13 21:13:37
631
8
原创 算法的时间复杂度和空间复杂度
前言在我们看到一个算法时,如何来衡量这个算法的好坏呢?衡量一个算法的好坏一般是从时间和空间的维度来衡量的,即是时间复杂度和空间复杂度。那怎么样计算时间复杂度和空间复杂度呢?
2025-03-11 19:32:51
717
5
原创 C语言文件操作
在刚开始写代码运行程序时,写入的数据在我们结束程序后一并销毁,那要是想要保存输入的数据怎么办呢?这就涉及到数据持久化的问题,一般数据持久化的方法有:将数据保存在磁盘文件上,存入数据库中。
2025-03-05 20:15:27
897
3
原创 C语言:动态内存管理
为什么需要动态内存呢?,一般开辟空间都是固定的,这样局限性太大了,当我们需要更大的空间时就需要进行多处修改,几行代码修改的话还行,但是几万行代码进行修改那工程量就太大了;需要的空间不需要那么多,就会出现空间浪费,这时候就需要动态内存,需要多大的空间就开辟多大的空间。
2025-03-02 21:00:20
555
6
原创 结构体内存对齐规则
C语言中字符型、短整型、整型、浮点型等在内存开辟固定的空间,那么结构体在内存中占用多大的空间呢?阅读完这篇文章相信你就对结构体在内存中占用多大空间有一定了解。
2025-03-01 14:16:26
797
3
原创 《C语言字符与字符串函数完全指南:从入门到避坑》
为什么需要这些函数:解释C语言中手动处理字符和字符串的复杂性。标准库的作用:强调ctype.h和string.h的重要性,是C程序员的核心工具。
2025-02-26 21:03:56
857
4
原创 深入浅出:理解编程中的“指针”
为什么在编程中需要指针呢?指针的作用是什么呢?指针应该怎么用?等等......这些问题都会在这篇文章中解疑,让我们阅读这篇文章解开心中的疑问吧!
2025-02-21 21:06:15
856
3
原创 VS2019调试入门:10个让新手效率翻倍的实用技巧
“你是否还在用Console.WriteLine调试代码?掌握这些VS2019调试神器,轻松告别低效抓虫!无需复杂配置,5分钟上手实战技巧!”
2025-02-14 21:06:04
1892
2
原创 C语言操作符详解
今天给大家分享C语言中操作符嘻嘻操作符在平常编程中十分常见,也可以说经常用到。C语言中操作符有: 算术操作符、 移位操作符、 赋值操作符、 单⽬操作符等多种操作符,让我们一起来详细了解吧。
2025-02-11 20:32:49
1557
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅