
C++
文章平均质量分 90
Code Warrior
我会在学习编程的过程中将自己所学的编程知识分享到博客上来,希望在巩固知识的同时,也能和各位大佬多多交流~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C++】vector的模拟实现
这篇文章详细介绍了如何模拟实现C++中的vector容器。主要内容包括:1. 基本结构设计,使用三个指针管理内存;2. 关键功能实现:容量管理(reserve)、元素操作(push_back/pop_back)、插入删除(insert/erase)、大小调整(resize)等;3. 特殊成员函数实现:拷贝构造、迭代器构造、赋值重载和析构;4. 注意事项:如扩容时的深拷贝问题、迭代器失效问题等。文章提供了完整的实现代码,展示了vector的核心功能和实现细节,特别强调了内存管理和数据拷贝的正确处理方式。原创 2025-06-01 22:37:16 · 517 阅读 · 0 评论 -
【C++】string类
本文介绍了C++标准库中string类的基本使用和相关特性。主要内容包括:string类的基本介绍及头文件包含要求;C++11中auto关键字的新用法及其在变量声明中的应用;范围for循环的语法及底层实现原理。详细说明了string类的常用接口,包括构造方法(空字符串构造、字符数组构造、拷贝构造等)、容量操作(size/length/capacity等)、访问及遍历操作(下标访问、迭代器遍历、范围for循环)。文章还强调了auto关键字的使用限制,以及范围for循环对数组和容器的支持。原创 2025-06-01 15:33:47 · 706 阅读 · 0 评论 -
【C++】二叉搜索树
二叉搜索树(BST)是一种特殊的二叉树,其左子树的所有节点值小于等于根节点,右子树的所有节点值大于等于根节点。BST支持插入、查找和删除操作,其性能在最优情况下(完全二叉树)为O(log2N),但在最差情况下(单支树)退化为O(N)。为了提高效率,引入了平衡二叉搜索树(如AVL树和红黑树)。BST的插入操作根据节点值大小决定插入位置,查找操作从根节点开始比较,删除操作则根据节点子节点情况分为四种处理方式。BST的实现代码展示了其基本结构和操作,包括节点定义、插入、查找和删除功能。原创 2025-05-16 12:24:22 · 710 阅读 · 0 评论 -
【c++】继承
继承是面向对象程序设计中的重要机制,允许在保持原有类特性的基础上进行扩展,生成派生类。通过继承,可以复用基类的代码,减少冗余。例如,Student和Teacher类可以继承Person类,共享姓名、地址等属性,同时增加各自特有的属性和方法。继承分为单继承和多继承,多继承可能导致菱形继承问题,即数据冗余和二义性。虚继承可以解决这一问题。派生类的构造函数、拷贝构造函数、赋值运算符和析构函数需要调用基类对应的函数来完成基类成员的初始化或清理。继承体现了“is-a”关系,而组合体现了“has-a”关系。组合的耦合度原创 2025-05-13 23:17:43 · 914 阅读 · 0 评论 -
【C++】模版初阶
用来定义模板参数切记:不能使用struct代替class)原创 2024-11-12 23:55:42 · 432 阅读 · 2 评论 -
【C++】类和对象(下)
尽量使⽤初始化列表初始化,因为那些你不在初始化列表初始化的成员也会⾛初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会⽤这个缺省值初始化。对于没有显⽰在初始化列表初始化的⾃定义类型成员会调⽤这个成员类型的默认构造函数,如果没有默认构造会编译错误。C++11⽀持在成员变量声明的位置给缺省值,这个缺省值主要是给没有显⽰在初始化列表初始化的成员使⽤的。每个成员变量在初始化列表中只能出现⼀次,语法理解上初始化列表可以认为是每个成员变量定义初始化的地⽅。D. 输出 1 随机值。化,否则会编译报错。原创 2024-10-10 23:19:32 · 1314 阅读 · 0 评论 -
【C++】类和对象(中)
类的默认成员函数主要包括。需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重要,我们稍微了解⼀下即可。2. 构造函数构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并 不是开空间创建对象(我们常使⽤的局部对象是栈帧创建时,空间就开好了),⽽是对象实例化时初始化对象。构造函数的本质是要替代我们以前Stack和Date类中写的Init函数的功能,构造函数⾃动调⽤的特点就完美的替代的了Init。构造函数的特点:1.函数名与类名相同。2.⽆返回值。原创 2024-10-09 23:22:08 · 862 阅读 · 0 评论 -
【C++】类和对象(上)
•class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。•为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。•C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是。原创 2024-10-08 23:24:25 · 945 阅读 · 0 评论 -
【C++】入门基础
• 定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。• namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以上面程序中的rand不再冲突了。要想使用命名空间域中的变量需要在变量名前加命名空间域名::(其中::是预作用限定符),如下图所示。预作用限定符(::)是C++中一个非常重要的运算符,主要用于解决命名冲突和指明成员的具体归属。原创 2024-07-30 22:25:39 · 1211 阅读 · 0 评论