- 博客(19)
- 收藏
- 关注
原创 C++vector类模板常用接口说明与模拟实现
本文详细介绍了C++ STL中vector容器的概念、实现原理及核心接口的模拟实现。文章首先比较了vector与string的区别,指出vector是类模板,可存储任意类型数据。重点讲解了vector的三指针实现机制(_start、_finish、_end_of_storage)及其内存管理方式,并模拟实现了构造函数、析构函数、reserve、push_back等核心接口。特别深入分析了迭代器失效问题及其解决方案,包括insert和erase操作时的处理方式。通过完整的代码实现展示了vector的动态扩容机
2025-07-23 19:40:20
1126
原创 C++string类的模拟实现
本文详细介绍了C++中string类的模拟实现过程。主要包括默认函数实现(构造函数、析构函数、拷贝构造函数、赋值运算符重载)和常用成员函数(如reserve、push_back、append等),重点讲解了字符串处理的核心逻辑和内存管理。文章还涉及迭代器实现、运算符重载以及流操作函数等非成员函数,特别对流提取运算符进行了性能优化。通过完整的模拟实现,帮助读者深入理解string类的底层机制,掌握STL容器的设计思想和实现方法。所有代码实现均采用现代C++写法,注重效率和安全性。
2025-07-20 14:26:58
840
原创 C++string类常用接口介绍
本文系统介绍了C++标准模板库(STL)中的string类。作为STL六大组件之一,string不仅是字符串容器,也是学习STL的最佳切入点。文章详细解析了string的底层实现(包含_str、_size、_capacity三个成员变量)、构造/析构函数、容量操作(如size/resize/reserve等)、元素访问(如operator[]/at/back/front)、变更操作(如append/insert/erase等)和非变更操作(如find/substr/compare等)等核心功能。特别强调了s
2025-07-18 17:01:07
1068
原创 c++模板初阶
本文介绍了C++模板编程的基础知识。函数模板通过泛型编程实现代码复用,解决了函数重载的冗余问题,包括隐式/显式实例化和匹配原则(优先匹配普通函数)。类模板类似但多数需要显式实例化,因其类型必须在编译期确定。文章还提及了模板进阶内容如声明定义分离问题、非类型模板参数等。模板是C++泛型编程的核心技术,能显著提高代码复用性和可维护性。
2025-07-16 14:28:32
713
原创 C++内存管理方式
文章摘要: 本文系统介绍了C/C++中的内存管理机制,重点分析了不同内存区域(栈区、堆区、全局/静态区等)的特性与管理方式。详细对比了C语言的malloc/calloc/realloc/free与C++的new/delete操作符,指出后者在类型安全、构造函数支持等方面的优势。特别强调了new[]与delete[]的匹配使用必要性,通过类对象析构的实例演示了不匹配可能导致的内存泄漏问题。最后总结了手动内存管理的核心要点,包括正确释放、避免悬空指针等实践原则。全文150字,涵盖内存分区、管理函数对比及关键注意
2025-07-15 15:06:25
726
原创 类和对象——日期计算器
本文详细介绍了如何用C++类实现一个日期计算器。主要内容包括:1. 日期类的创建,包含年、月、日成员变量,构造函数、析构函数和运算符重载;2. 关键功能接口的实现:通过运算符重载实现日期加减天数、日期比较大小、计算两个日期间隔天数等功能;3. 闰年判断和月份天数获取等辅助方法;4. 提供了两种计算日期间隔天数的实现方案,并分析了各自的优缺点。文章从基础类设计到具体功能实现,系统地展示了面向对象编程在日期计算中的应用,代码完整可运行,对学习C++类和运算符重载具有很好的参考价值。
2025-07-12 14:51:46
1175
原创 c++类和对象(超详解)
本文详细介绍了C++类的核心概念与使用方法。主要内容包括:1. 类的基础知识:访问限定符、类域、实例化过程、对象大小计算规则及this指针;2. 6个默认成员函数的特性与用法:构造函数(含初始化列表)、析构函数、拷贝构造函数、赋值运算符重载等;3. 类相关特性:类型转换、static成员、友元机制、内部类和匿名对象。文章通过代码示例深入解析了类成员函数的实现原理,特别强调了构造函数、拷贝控制等关键概念,并对比了浅拷贝与深拷贝的区别。最后指出类是C++面向对象编程的基础,掌握这些知识对后续学习标准库至关重要。
2025-07-08 11:33:58
1079
原创 c++引用与inline
本文介绍了C++中的引用机制和内联函数。引用是为已有变量创建别名,共享内存空间,具有必须初始化、不可更改引用对象等特点,常用于函数参数和返回值以减少拷贝开销。文章详细说明了const引用的权限问题及临时变量特性,对比了引用与指针的异同。内联函数通过inline关键字建议编译器在调用处展开代码,避免函数调用开销,适合短小频繁调用的函数,但不适用于递归或冗长函数。最后指出类成员函数默认被视为内联函数。这些特性共同提升了C++程序的运行效率。
2025-07-04 21:26:40
634
原创 c++缺省参数与函数重载
本文介绍了C++中的缺省参数和函数重载特性。缺省参数分为全缺省(所有参数都有默认值)和半缺省(部分参数有默认值,且必须从右至左依次缺省),调用时未指定参数则使用默认值。函数重载允许同名函数存在,通过参数个数或类型不同来区分,但返回值类型不影响重载。需要注意的是,使用缺省参数时函数声明和定义不能同时出现缺省值,而重载函数要避免调用歧义的情况。这两个特性增强了代码的灵活性和可读性,是C++编程的重要基础。
2025-07-04 20:34:27
389
原创 C++输⼊&输出 简单介绍
摘要:C++提供了<iostream>标准库进行输入输出操作,相比C语言的scanf/printf更便捷。cin>>用于基本输入,但不能处理含空格的字符串;cin.get()和cin.getline()可处理特殊字符,后者会丢弃换行符。cout<<用于输出,支持连续输出变量和字符串。这些操作通过运算符重载实现,无需手动指定数据类型格式。文中还介绍了std命名空间、流提取/插入运算符及缓冲刷新等概念。
2025-07-02 21:10:05
429
原创 c++命名空间(namespace)简单介绍
摘要: 命名空间在C/C++中用于解决全局作用域下的命名冲突问题,通过namespace关键字将标识符本地化,避免污染全局空间。它能聚合相关功能代码,提升可读性和维护性,并防止第三方库与项目代码冲突。命名空间可嵌套或与类结合模拟访问控制,增强安全性。定义时需注意其独立于全局域,且支持跨文件融合。使用时可选择作用域解析符(::)、using引入单个成员或全部展开(不推荐,易引发冲突)。标准库使用std命名空间。项目中推荐第一种方式以确保安全性和清晰性。
2025-07-02 17:31:36
382
原创 数据结构——七大排序算法详解
本文系统介绍了七种经典排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序和归并排序。通过图文结合的方式详细阐述了各算法的实现原理、代码示例及关键特性。其中,直接插入排序适合接近有序的数据;希尔排序是其优化版本;快速排序综合性能最优,提供三种实现方式;归并排序稳定但需额外空间。文章还分析了时间复杂度(O(N^2)到O(NlogN))、空间复杂度及稳定性等核心指标,并给出了递归与非递归的实现方案。特别针对边界条件和越界问题提供了解决方案,帮助读者全面掌握排序算法的实现与优化技巧。
2025-07-01 18:08:30
798
原创 数据结构——二叉树
本文系统介绍了树和二叉树的概念、性质、存储结构及相关算法实现。主要内容包括:1. 树的基本概念及术语解释;2. 二叉树的定义、特殊类型(满二叉树、完全二叉树)及其性质;3. 二叉树的两种存储结构(顺序存储和链式存储);4. 堆的概念、实现(包括初始化、插入、删除等操作)及应用(堆排序、TopK问题);5. 二叉树的四种遍历方式(前序、中序、后序、层序)的实现。文章通过图示和代码示例详细讲解了相关数据结构的特点和操作方法,最后对二叉树的应用价值进行了总结。
2025-05-31 22:45:49
1123
原创 数据结构——栈与队列的实现与相互实现
本文系统讲解了栈和队列的概念及实现方法。栈采用动态数组实现,支持初始化、扩容、入栈出栈等操作;队列采用链表结构实现,包含初始化、入队出队等接口。重点探讨了两种数据结构相互转换的方法:1)使用两个栈实现队列功能,通过元素倒换实现FIFO特性;2)用两个队列模拟栈操作,采用轮流倒换队列的方式实现LIFO。同时介绍了循环队列的实现策略,通过多开辟一个空间解决判空/满问题。文中详细给出了各数据结构的接口代码实现,并配有示意图辅助理解,为掌握这些基础数据结构及其转换应用提供了清晰指导。
2025-05-29 21:11:49
730
原创 贪吃蛇游戏的c语言实现
贪吃蛇游戏的实现需要的理论基础最重要的结构体、指针、链表,然后其他的就跟着作者的思路一起走下去吧。由于作者水平有限,我尽可能讲清楚,相关函数有不理解的地方还请大家发挥自习能力,查阅相关资料进行学习,同时希望我的文章能够对大家有所帮助,如有错误,欢迎指出。
2024-10-02 14:56:15
4427
1
原创 还不会写扫雷游戏吗
相信大家的童年肯定都玩过扫雷小游戏,对于我来说最开始接触电脑就是从电脑系统带的小游戏开始的,对于我印象最深的就是扫雷。这篇文章将带你通过c语言写出9×9模式的扫雷游戏,重温童年的同时感受一下c语言的魅力。
2024-03-04 20:02:02
931
2
原创 c语言分支循环语句详解
在每一个人的一生中会有一帆风顺的时候,会有需要抉择的时候,而且我们的一生往往会在这样不停循环中度过。c语言也一样有三种基本结构:顺序结构、分支结构、循环结构;通过这三种结构去处理遇到的问题,这里将会简要介绍分支与循环结构。以上就是我所要讲的内容,本文仅仅简单介绍了if语句、switch语句、while循环、for循环、do while循环以及goto语句的使用方式,如果上述有任何问题,请懂哥指教,也希望自己能坚持。如果可以请懂哥温柔一点对待一个初学者,希望每见落日,身上满满的都是成就感。
2024-01-27 18:22:27
1189
原创 进入c语言
我相信学无止境,对于我的目标至少来说要把c语言学到对于我的专业绰绰有余,但我觉得兴趣是最好的老师,对于我有兴趣的东西我会一直学下去一直去探索,现阶段来说呢我认为任何东西基础最为重要,作为初学者我将脚踏实地的去学好c语言中的基础知识,将理论与实践结合,让程序反馈出我的成果。我也将用一周至少20个小时的时间去学习c语言,不仅仅是c语言后期我也将学习更多的计算机相关知识和语言,希望能早日达到华为、小米等IT公司的招聘要求。一直到进入大学之后开启了c语言和计算机的知识学习才发现自己对于计算机的了解太肤浅了。
2024-01-22 15:47:35
462
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅