- 博客(15)
- 收藏
- 关注
原创 C++ 模板初阶
泛型编程通过模板技术实现代码复用,避免函数重载的弊端。函数模板作为通用代码模具,在编译时根据参数类型自动生成具体函数实例,支持隐式和显式实例化。类模板则允许定义通用数据结构,实例化时需指定具体类型。模板技术显著提高了代码复用率和可维护性,是泛型编程的核心实现手段。
2026-02-13 23:01:17
478
原创 《STL string 底层复刻:动态数组、拷贝控制与性能优化》
本文详细介绍了C++中string类的实现原理与核心功能。主要内容包括:1. 基础架构设计,采用动态内存管理(_str指针)、_size记录有效长度、_capacity管理容量;2. 关键函数实现:构造函数(默认/拷贝/移动)、析构函数、运算符重载(=、[]等);3. 字符串操作:push_back/append/insert/erase/find/substr等;4. 流操作与比较运算符重载。重点分析了深拷贝优化、异常安全处理、扩容策略等实现细节,并提供了完整的头文件和实现代码。通过现代C++技术(如sw
2026-02-13 21:26:19
763
原创 C/C++内存管理
对于自定义类类型,new会先分配内存,再调用构造函数;~A()XG++;int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间//还会调用构造函数和析构函数delete p1;return 0;
2026-02-10 17:44:20
567
1
原创 C++ 类和对象(3/3)
本文系统讲解了C++核心语法特性:1. 构造函数初始化列表的使用规则及注意事项;2. 类型转换机制(内置类型→类类型、类类型间转换)及explicit关键字作用;3. static成员的声明、初始化规则及访问限制;4. 友元机制的本质、声明规则及使用注意事项;5. 编译器对对象拷贝的优化策略。重点包括:初始化列表必须初始化引用/const成员,static成员需类外初始化,友元关系具有单向性和不可传递性等特性。这些知识点是理解C++面向对象编程的核心内容。
2026-02-10 11:29:28
781
2
原创 C++ 类和对象(2/3)
本文介绍了C++类的默认成员函数,重点讲解了构造函数、析构函数和拷贝构造函数。默认成员函数是编译器自动生成的成员函数,包括6个基本函数(C++11新增2个)。构造函数用于对象初始化,特点包括自动调用、可重载等;析构函数用于资源清理,在对象销毁时自动调用;拷贝构造函数用于对象拷贝,需注意深浅拷贝问题。通过Date和Stack类的示例,说明了这些函数的实现要点:编译器默认生成的函数可能不满足需求(如资源管理类需自行实现析构和深拷贝),而简单类可直接使用默认实现。文章强调理解默认函数行为并根据需求选择实现方式的重
2026-01-30 18:45:05
679
4
原创 C++ 类和对象(1/3)
本文介绍了C++中类的定义、访问限定符、类域、实例化、对象大小计算和this指针等核心概念。类通过class关键字定义,包含成员变量和成员函数,访问权限由public、private、protected控制。类实例化会在内存中创建对象,对象大小由成员变量决定并遵循内存对齐规则。this指针是编译器自动添加的隐含参数,用于区分不同对象调用相同成员函数的情况。文章还对比了C和C++实现栈的差异,展示了C++封装特性的优势。最后通过题目演示了空指针调用成员函数的问题,指出访问私有成员变量会导致程序崩溃。这些基础知
2026-01-28 16:18:31
1088
3
原创 编程中的“文字游戏”:字符串操作趣谈(string)
本文系统介绍了C++中string类的核心概念和常用操作。string是C++标准库提供的字符串类,相比C风格字符串更安全高效。主要内容包括:1) string的创建初始化方法;2) 输入输出操作(cin/getline);3) 常用成员函数如size()、push_back()、pop_back()、insert()等;4) 查找(find)和截取(substr)子串;5) 字符串比较(基于ASCII码字典序);6) 字符串与数字的相互转换(stoi/to_string等)。
2026-01-18 12:05:53
615
1
原创 单链表专题
本文详细介绍了链表的基本概念、结构特点及单链表的实现方法。主要内容包括:1. 链表的基本概念:由节点组成的非连续线性结构,每个节点包含数据域和指针域;2. 单链表实现:详细讲解了初始化、销毁、打印等基本操作,以及头尾插入删除、指定位置操作等核心功能;3. 链表分类:简要说明链表结构的多样性,指出最常用的单链表和双向带头循环链表两种结构。文章采用火车车厢的生动比喻解释链表原理,并通过代码示例展示了各功能的实现细节,为后续链表面试题讲解奠定基础。
2025-12-08 21:52:08
917
1
原创 顺序表--超级详细
摘要:线性表是n个数据元素的有限序列,包括顺序表、链表等实现形式。顺序表采用连续存储单元存储数据,分为静态和动态两种。动态顺序表通过数组实现,支持增删查改等基本操作,具有随机访问快(O(1))但插入删除慢(O(n))的特点。文章详细介绍了动态顺序表的数据结构定义、初始化、扩容、插入删除等核心操作的C语言实现,并分析了其优缺点及适用场景,适用于数据访问频繁但修改较少的应用。
2025-12-07 23:47:57
732
4
原创 算法的时间复杂度和空间复杂度
摘要:本文系统讲解了算法效率的评估标准,重点分析了时间复杂度和空间复杂度的概念与应用。通过斐波那契数列的递归与迭代实现对比,展示了不同算法在时间(O(2ⁿ) vs O(n))和空间(O(n) vs O(1))上的差异。详细阐述了大O表示法的推导规则,强调其忽略常数、保留最高阶项的特点。以线性搜索、递归阶乘和归并排序为例,说明了空间复杂度的计算方法。最后通过"消失的数字"问题,演示了如何利用异或运算实现O(n)时间复杂度的解决方案。全文兼顾理论讲解与代码实例,为算法性能分析提供了实用指导。
2025-12-06 23:47:13
1459
2
原创 C++⼊⻔基础
本文系统介绍了C++中的核心编程概念:命名空间用于组织代码避免冲突;输入输出通过iostream库实现流操作;缺省参数提供函数调用的灵活性;函数重载实现编译时多态;引用作为变量别名比指针更安全;内联函数优化性能;NULL与nullptr在空指针表示上的差异。这些特性共同构成了C++高效灵活的编程体系,开发者应根据场景合理选用,注意避免常见陷阱如缺省参数滥用。掌握这些概念对编写健壮、高效的C++代码至关重要。
2025-12-05 20:18:11
996
9
原创 字符函数和字符串函数
本文介绍了C语言中常用的字符和字符串处理函数。主要包括:1) 字符分类函数(如islower)和转换函数(如toupper);2) 字符串操作函数(如strlen、strcpy、strcat、strcmp)及其模拟实现方法;3) 带长度限制的字符串函数(strncpy、strncat、strncmp);4) 字符串查找函数strstr和分割函数strtok;5) 错误处理函数strerror和perror。
2025-11-16 13:33:47
1065
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅