自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 C++的一些问题

学习C++中的一些问题记录,持续更新

2025-09-04 10:22:49 564

原创 值初始化(value initialization)和默认初始化(default initialization)的区别

对比项默认初始化值初始化触发方式未指定初始值使用()或{},或特定场景自动触发内置类型行为未定义值零初始化(值为 0)类类型行为调用默认构造函数调用默认构造函数(或按规则初始化)安全性内置类型可能产生垃圾值确保对象处于明确初始状态。

2025-08-26 15:40:34 263

原创 外观模式

外观模式(Facade Pattern)是一种结构型设计模式,它为复杂的子系统提供一个简单的统一接口,隐藏系统的复杂性,使客户端更容易使用。这个模式通过一个高层接口封装多个子系统的功能,让客户端只需与外观类交互,而不必直接与复杂的子系统打交道。外观模式是一种非常实用的设计模式,它通过封装复杂子系统的接口,为客户端提供简单易用的高层接口,从而提高系统的可维护性和可扩展性。:实现具体的功能模块,处理外观类委派的任务。:在大型系统中,可以设计多个外观类,每个外观类负责不同层次的功能,形成层次化的外观模式。

2025-07-23 10:35:41 253

原创 通俗理解 桥接模式

桥接模式就像是给两个变化的东西之间搭了一座桥,让它们可以独立变化,互不干扰。这样一来,如果新出一种手机品牌,或者新出一种充电器接口,就需要重新设计整个系统,非常不灵活。这样设计的好处是:系统更灵活,更容易扩展,也更容易维护。

2025-07-22 19:57:01 176

原创 单例模式的“最佳?”实现 C++

【代码】单例模式 C++实现。

2025-07-22 09:40:01 173

原创 建造者模式和工厂模式实际开发中通常用于哪些场景

将对象的创建逻辑封装在一个工厂类中,客户端只需通过工厂获取对象,而无需关心具体的创建过程。将一个复杂对象的构建与表示分离,允许用户通过指定复杂对象的类型和内容,一步一步构建它们。对象的构建过程需要多个步骤(如初始化、配置、验证),且步骤顺序可能不同。:创建一个配置对象,包含主机名、端口、超时时间、认证信息等多个可选参数。:游戏中根据用户选择的角色类型(战士、法师、射手)创建对应的角色对象。:数据库连接对象的创建,需要配置 URL、用户名、密码等参数。根据不同的条件(如配置、用户输入)创建不同类型的对象。

2025-07-21 21:04:30 714

原创 C++ 多态相关

摘要:多态性通过静态和动态方式实现。静态多态依赖编译时的函数重载和运算符重载,实现同名函数不同参数的处理。动态多态基于虚函数和继承机制,在运行时确定调用的具体函数,需注意虚析构函数防止内存泄漏。C++11引入的override关键字能显式标识虚函数重写,提高代码安全性和可维护性。抽象类通过纯虚函数定义接口规范,强制派生类实现特定功能。多态机制有效提升了代码的扩展性和复用性。

2025-07-21 16:44:37 940

原创 set和multiset容器(集和多集)

基本概念所有元素在插入的时候自动被排序 都属于关联式容器,底层结构使用二叉树实现 头文件<set>包括set和multisetset和multiset的区别:set不允许容器中有重复的元素 multiset允许构造与赋值构造:set<T> st; //默认构造函数: set(const set &st); //拷贝构造函数赋值:set& operator=(const set &st); //重载等号操作符#inclu..

2022-03-11 18:36:08 186

原创 list容器

list基本概念链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表list的优点:采用动态存储分配,不会造成内存浪费和溢出 链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素list的缺点:链表灵活,但是空间(指针域) 和 时间(遍历)额外耗费较大 List有一个重要的性...

2022-03-05 17:57:52 1181

原创 构造函数和析构函数

构造函数主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。构造函数语法:类名(){}构造函数,没有返回值也不写void 函数名称与类名相同 构造函数可以有参数,因此可以发生重载 程序在调用对象时候会自动调用构造,无须手动调用,而且只会调用一次两种分类方式:​ 按参数分为: 有参构造和无参构造(默认构造函数) ​ 按类型分为: 普通构造和拷贝构造C++提供了初始化列表语法,用来初始化属性语法:构造函数():属性1(值1),属性2(值2)..

2022-03-05 17:23:00 151

原创 queue 容器

queue 基本概念queue是一种先进先出(First In First Out,FIFO)的数据结构 队列容器允许从一端新增元素,从另一端移除元素 队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为 队列中进数据称为 --- 入队 push 队列中出数据称为 --- 出队 popqueue 常用接口构造函数:queue<T> que; //queue采用模板类实现,queue对象的默认构造形式 queue(const queue &que);

2022-02-22 17:49:08 301

原创 stack容器

stack 基本概念stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为 栈中进入数据称为 --- 入栈 push 栈中弹出数据称为 --- 出栈 popstack 常用接口构造函数:stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式 stack(const stack &stk); //拷贝构造函数赋值操作:...

2022-02-22 16:43:21 883

原创 deque容器

deque容器基本概念 deque构造函数 deque赋值操作 deque大小操作 deque 插入和删除deque 数据存取 deque 排序功能:双端数组,可以对头端进行插入删除操作。deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率越低。deque相对而言,对头部的插入删除速度回比vector快。vector访问元素时的速度会比deque快,这和两者内部实现有关。deque内部工作原理:deque内...

2022-02-19 23:46:58 245

原创 vector容器

vector基本概念 vector构造函数 vector赋值操作 vector容量和大小 vector插入和删除 vector数据存取 vector互换容器 vector预留空间

2022-02-15 23:14:14 167

原创 string容器

string-构造 string-赋值 string-拼接 string-字符串查找与替换 string-字符串比较 string-字符存取 string插入和删除 string-子串

2022-02-14 16:52:40 107

原创 vector存放默认数据类型,自定义数据类型,vector嵌套vector,并遍历输出

1、使用for循环输出2、调用for_each()函数 // 需要添加头文件#include <algorithm>

2022-02-13 21:30:54 1282

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除