
C++知识分享
文章平均质量分 97
C++知识分享为目的,鼓励大家坚持学习C++,期待与大家共同进步
Cx330❀
一个正在努力奋斗逆天改命的二本觉悟生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《C++ STL:vector类(下)》:攻克 C++ Vector 的迭代器失效陷阱:从源码层面详解原理与解决方案
【C++ vector迭代器失效问题深度解析】 本文系统分析了C++中vector容器迭代器失效的核心问题和解决方案。主要内容包括: 迭代器失效机制 底层原理:迭代器本质是指针,失效源于指向空间被释放 典型场景:insert/push_back等扩容操作导致旧空间释放 删除操作:erase后元素前移,若删除末尾元素会使迭代器指向end 解决方案对比 Windows(vs)严格检测:操作后必须重置迭代器 Linux(g++)较宽松:部分情况仍可运行但结果不可靠 正确做法:insert/erase后接收返回值更原创 2025-10-03 22:18:46 · 671 阅读 · 42 评论 -
《C++ STL:vector类(上)》:详解基础使用&&核心接口及经典算法题
本文主要介绍了C++中vector容器的使用方法和特性。内容涵盖:1)vector的基本概念,作为顺序表容器与string类的对比;2)vector的多种构造方式;3)迭代器使用和自定义输出函数;4)容量管理机制,包括不同环境下的扩容策略(VS按1.5倍,g++按2倍);5)常用增删查改操作;6)通过两道算法题(只出现一次的数字和杨辉三角)展示vector的实际应用。文章还对比了C和C++实现二维数组的差异,并提供了完整的测试代码示例,帮助读者全面掌握vector的使用技巧和底层原理。原创 2025-10-03 08:40:51 · 816 阅读 · 56 评论 -
《一篇拿下C++:string类(详解版)》:教你如何从入门到避坑再到玩转字符串问题
本文深入解析C++中的string类,帮助读者快速掌握字符串处理技巧。文章首先对比C语言字符串的三大痛点(越界访问、手动内存管理、接口分散)与string类的优势(接口丰富、自动内存管理、OOP设计)。接着详细讲解string的核心使用:4种构造方式、3种遍历方法(下标访问、范围for、迭代器)、字符串修改(追加/插入/删除)、替换和清空操作。重点介绍容量管理技巧(size/length/capacity区别、resize/shrink_to_fit使用)和VS/g++下的存储差异。最后补充实用接口:查找(原创 2025-09-28 09:15:51 · 1082 阅读 · 62 评论 -
《C++:STL》详细深入解析string类(一):
这篇文章主要介绍了C++中的string类及其使用。内容涵盖:1) string类相较于C字符串的优势;2) string类的常见构造方法、容量操作和修改操作;3) 迭代器、范围for循环等遍历方式;4) auto关键字等C++11新特性。文章通过大量代码示例演示了string类的各种用法,包括字符串构造、查找替换、插入删除等操作,并对比了C++ string与C字符串的区别。最后提供了完整测试代码,帮助读者全面掌握string类的使用。原创 2025-09-23 17:04:10 · 1115 阅读 · 25 评论 -
《一篇拿下!C++:模板(初阶)》:模板的精妙绝伦!
本文介绍了C++中的泛型编程和模板技术,重点讲解了函数模板和类模板的使用方法。文章首先通过交换函数示例引出泛型编程概念,然后详细解析了函数模板的定义格式、实例化过程(隐式/显式)和匹配原则。在类模板部分,阐述了定义格式和显式实例化的必要性,并提供了栈结构的实现示例。最后强调模板技术能显著减少代码冗余,但需要通过实践来掌握。全文为C++学习者提供了模板编程的系统性指导。原创 2025-09-21 17:31:40 · 854 阅读 · 34 评论 -
《一篇拿下!C++内存管理》:new和delete的崛起
本文系统讲解了C++内存管理的核心知识,包括内存分布、C语言内存管理方式与C++方式的对比。通过典型例题分析全局变量、静态变量、局部变量在内存中的存储位置(栈、堆、静态区等),详细解析了malloc/calloc/realloc与new/delete的异同:new/delete会调用构造/析构函数,而malloc/free不会;new失败抛异常,malloc返回NULL。文章还深入探讨了operator new/delete的底层实现原理,并介绍了定位new表达式等高级用法。最后总结了内存池技术和面试常见问原创 2025-09-20 16:50:32 · 1075 阅读 · 29 评论 -
《一篇拿下!C++类和对象(下):初始化列表、类型转换、Static、友元、内部类、匿/有名对象及其优化》
本文深入探讨了C++中类和对象的关键概念,包括构造函数初始化列表、类型转换、static成员、友元机制、内部类等核心知识点。重点讲解了初始化列表的使用规则和优势,分析了成员变量的初始化逻辑,并通过例题演示了声明顺序对初始化的影响。同时详细介绍了友元函数的声明方式和使用场景,以及内部类的特性和应用。文章还涵盖了匿名对象的特点、编译器优化技巧,并提供了完整的代码示例。这些内容为C++开发者深入理解类和对象提供了全面指导,帮助掌握面向对象编程中的高级特性和最佳实践。原创 2025-09-15 16:07:26 · 933 阅读 · 31 评论 -
《一篇拿下!(详解版)C++ Date类设计与实现:从运算符重载到项目实现》
这篇博客详细介绍了C++中Date类的实现过程,包括日期加减运算、比较运算符重载等功能。主要内容包括: 实现了获取月份天数的辅助函数 完成了+=和+运算符重载,并展示了复用技巧 实现了-=和-运算符重载 区分了前置++/--和后置++/--的实现方式 通过复用完成了各种比较运算符重载 实现了日期相减计算天数差的功能 作者通过分步骤讲解和代码演示,展示了如何合理复用代码来简化实现过程。文章最后提供了完整的.h和.cpp文件代码,方便读者参考学习。原创 2025-09-07 11:11:30 · 1136 阅读 · 18 评论 -
《一篇拿下!C++ 类和对象(中):const 成员函数与取地址运算符重载解析》
本文深入探讨了C++中const成员函数和取地址运算符重载两个关键知识点。const成员函数通过收缩this指针权限来保障对象数据安全,使const对象能安全调用只读操作,同时提升代码可读性。取地址运算符重载通常使用编译器默认版本,但在特殊场景(如安全保护、内存池管理等)可手动重载实现定制化地址逻辑。文章结合Date类示例详细解析了语法规则、使用场景和实现细节,强调这两个特性在提升代码安全性、灵活性和专业性方面的重要作用,为复杂项目开发奠定坚实基础。原创 2025-09-06 10:46:59 · 770 阅读 · 12 评论 -
《一篇拿下!C++:类和对象(中):拷贝构造与赋值运算符重载》
摘要:本文介绍了C++中的拷贝构造函数和赋值运算符重载。拷贝构造函数用于对象初始化时的拷贝,其第一个参数必须是类类型引用,否则会引发无限递归;编译器默认生成的拷贝构造对内置类型进行浅拷贝,对自定义类型调用其拷贝构造。赋值运算符重载用于已存在对象间的赋值,必须重载为成员函数,建议返回引用以支持连续赋值;默认生成的赋值重载行为与拷贝构造类似。文章通过Date类和Stack类的示例详细说明了二者的实现要点和使用场景,并强调了当类需要显示析构时,通常也需要显示实现拷贝构造和赋值重载。原创 2025-09-03 18:09:15 · 655 阅读 · 18 评论 -
《一篇拿下!C++:类和对象(中)构造函数与析构函数》
本文主要介绍了C++类中的默认成员函数,重点讲解了构造函数和析构函数。构造函数用于对象初始化,特点包括与类同名、无返回值、自动调用和可重载;析构函数用于资源清理,特点包括加~前缀、无参数、自动调用。编译器会为未显式定义的类生成默认构造函数和析构函数,但对内置类型处理不同:构造函数不初始化内置类型,而析构函数不处理内置类型。文章通过代码示例对比了C++和C在括号匹配问题上的实现差异,展示了构造/析构函数的优势。最后强调这两者是类中最重要的默认成员函数,需要重点掌握。原创 2025-09-02 18:11:33 · 1696 阅读 · 14 评论 -
《一篇拿下!C++:类和对象(上)、封装、实例化和this指针详解》
这篇博客介绍了C++中类和对象的核心概念。主要内容包括:1)类的定义格式、访问限定符(public/private/protected)和类域;2)实例化过程及对象大小计算规则;3)this指针的原理与使用场景;4)通过C和C++实现Stack的代码对比,展示面向对象封装的优势。博客还包含三个课堂测试题,帮助理解this指针的特性和空指针问题。文章强调类和对象是C++学习的重点基础,为后续内容打下坚实基础。原创 2025-09-01 08:37:54 · 868 阅读 · 13 评论 -
《C++进阶:引用补充、内联函数与nullptr 核心用法》
本文主要介绍了C++中引用的补充知识、内联函数和nullptr的使用。在引用部分,讲解了const引用的权限问题及临时对象特性;比较了指针与引用的区别。内联函数部分说明了其替代宏函数的优势,以及使用注意事项。最后介绍了nullptr解决NULL二义性问题的作用。这些知识为后续类和对象的学习奠定了基础。文章通过代码示例详细说明了各个概念的应用场景和注意事项,帮助读者更好地掌握C++核心语法特性。原创 2025-08-25 17:40:29 · 790 阅读 · 19 评论 -
《C++基础:输入输出、缺省参数,函数重载与引用的巧妙》
本文介绍了C++入门相关知识,主要包含四个核心内容:1)输入输出流(iostream库、cin/cout使用及效率优化);2)缺省参数(全缺省/半缺省规则及使用场景);3)函数重载(三种实现方式及注意事项);4)引用(概念、特性、传参/返回值应用及与指针区别)。重点分析了引用在数据结构中的实际应用场景,并指出其使用限制。文章通过代码示例演示了各知识点的具体实现,为后续C++深入学习奠定基础。原创 2025-08-23 17:57:15 · 779 阅读 · 8 评论 -
《C++起源与核心:版本演进+命名空间法》
摘要:本文介绍了C++的起源与发展历史,从1979年"带类的C语言"到2023年C++23的标准演进过程。重点讲解了C++的第一个程序和命名空间(namespace)的使用方法,包括其定义、嵌套使用及三种访问方式。文章还提供了C++学习的参考文档和书籍推荐,并对比了C与C++的输入输出实现方式。作为C++入门系列的开篇,后续将逐步深入讲解C++语法特性和弥补C语言不足的内容。 (149字)原创 2025-08-22 18:19:45 · 1018 阅读 · 5 评论