- 博客(45)
- 收藏
- 关注
原创 C++多线程编程——条件变量wait_for的返回值含义
本文重点强调了C++中条件变量std::condition_variable的wait_for方法在不同重载版本的返回值含义。
2025-02-28 19:44:23
253
原创 C++多线程编程——“锁”住混乱:多线程厕所大战解密
当代码世界陷入“多线程厕所大战”,谁来维护秩序?本文将以幽默的例子揭开多线程编程中锁机制的神秘面纱。从基础到高级,我们一探究竟,如何用锁来锁住混乱,确保数据安全。帮你成为厕所(代码)的真正英雄!
2025-02-14 14:40:24
822
原创 C++模板编程——move和forward到底干了点啥?右值引用到底是左值还是右值?
本文主要讲解了move和forward的功能和源码,还有右值引用类型在不同情况下的值类别。
2025-02-12 15:01:10
761
原创 责任链模式——C++实现
的定义:为了避免请求发送者和多个请求处理者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并沿着这条链传递请求,直到有对象处理它为止。是一种行为型模式。通俗的说,就是将能够处理请求的对象连成一条链,每当请求来临的时候,请求就会沿着这条链传递,直到有一个对象能够处理该请求,或者所有的处理对象都无法处理该请求。从实现上来看,责任链就好像一条单链表一样。把责任链上的对象连接好了之后,客户只需要将请求发送到责任链上即可,而无需直到请求处理细节以及请求是被哪个对象处理了。
2025-02-11 19:18:11
400
原创 C++多线程编程——基于策略模式、单例模式和简单工厂模式的可扩展智能析构线程
本文主要介绍了一种基于策略模式、单例模式、简单工厂模式的可扩展智能析构线程,通过对thread进行包装,使得线程对象在销毁时自动进行join或detach。
2025-02-04 23:36:59
1345
原创 C++模板编程——模板中的特殊继承关系
奇异的递归模板模式(Curiously Recurring Template Pattern, CRTP)这种编程手法把派生类作为基类的模板参数。这种编程手法有什么用呢,下面介绍几种情况。
2025-02-04 16:42:12
283
原创 代理模式——C++实现
代理模式是一种行为型模式。代理模式的定义:由于某些原因需要给某对象提供一个代理以控制该对象的访问。这时,访问对象不适合或者不能直接访问引用目标对象,代理对象作为访问对象和目标对象之间的中介,代理模式也叫做委托模式。代理模式实际上作为一个中间层,处于要操作的目标对象和客户代码之间的中间层。相当于一个中介。抽象主题(抽象接口类):通过接口类声明真实主题的业务接口。真实主题(业务实现类):实现了具体的业务,是代理对象所引用的真实对象。
2025-02-02 17:24:17
507
原创 享元模式——C++实现
是一种。享元模式用于缓存共享对象,降低内存消耗。共享对象相同的部分,避免创建大量相同的对象,减少内存占用。享元模式需要将对象分成内部状态和外部状态两个部分。所谓内部状态指的是可以共享的状态,外部状态指的是会随着对象的使用而改变的的状态。比如,如果要模拟一个五子棋程序。对棋子来说,棋子的图片就属于内部状态,而棋子的位置和大小就属于外部状态。棋子的图片可以被所有使用棋子的地方所共享,棋子的位置和大小每个使用的地方都不一样。
2025-02-02 16:04:55
425
原创 适配器模式——C++实现
一种。适配器模式的定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不可兼容的类可以合作无间。简而言之,适配器模式可以将一种接口转换成我们想要的形式。举个例子,家用插座的供电时220V交流电,而普通手机的充电口需要的是5V的直流电。它们俩的接口不同,所以不可以通过导线直接连接起来给手机充电。我们平时使用的手机充电器它的正式名称是电源适配器,电源适配器通过一系列的转换,将220V交流电转换成手机所需要的5V直流电。
2025-01-24 16:28:36
460
原创 状态模式——C++实现
是一种。状态模式的定义:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。通俗的说就是一个对象在不同的状态下拥有不同的行为。对象可以拥有多个不同的状态,不同状态下调用同一个接口会产生不同的行为。状态模式通过把状态封装成类,可以很好地维护一个对象的不同状态,并且方便地扩展新的状态。举个例子:假如在游戏程序中,要模拟一个怪物。怪物的总血量为100,当血量大于50时,怪物处于亢奋状态,怪物受击时会进行反击;当血量小于等于50时,怪物处于恐慌状态,受击时会选择逃跑。
2025-01-23 21:50:16
894
原创 VS2022+GLFW+OpenGL搭建ImGUI环境竟如此简单!
打开,下载项目并解压缩。把图中的所有.h文件和.cpp文件复制粘贴到你的项目里。打开backends文件夹把这5个文件复制粘贴到你的项目里配置完成!
2025-01-08 22:07:32
515
原创 Assimp的ReadFileFromMemory函数踩坑
使用ReadFileFromMemory函数无法加载obj和md3等模型数据分散在多个文件中的模型。这时就只能通过ReadFile函数来加载模型或者通过自定义的IOSystem。
2025-01-04 16:11:17
245
原创 组合模式——C++实现
是一种。组合模式又叫做部分整体模式,组合模式用于把一组相似的对象当做一个单一的对象。特别擅长处理树形的数据,对于非树形的数据不好用它。对于树形的数据,一个典型的例子就是文件系统。在文件系统里大致上可以分为和两种类型的数据文件夹中可以包含文件也可以包含其他文件夹。就像下面这张图一样,文件的组织就像一颗多叉树。如果使用组合模式来实现类似tree命令的文件名打印,UML类图如下:比较简单,不详细说了,直接看下面的代码吧,兄弟们。
2025-01-03 21:45:01
516
原创 VTK User‘s Guide第四版(最新的)——中文翻译版PDF
双语对照版PDF、中文版PDF。两个版本的中文部分是一模一样的,只是一个有英文对照,一个是纯中文。建议看双语对照版的,有的地方翻译不准确。
2025-01-02 20:03:26
156
原创 VS2022+VTK配置环境竟如此简单!(无需CMAKE知识)
手把手配置VTK的VS2022开发环节,每一步都有图片展示,小小白也能一次成功,环境配置竟如此简单!
2025-01-02 16:54:28
2413
13
原创 OpenCV+VS2022——环境搭建竟如此简单
手把手教您配置VS编辑器中OpenCV的C++开发环境,每一步都有图片说明,一次就成功,不用翻来覆去再找教程!!
2024-12-31 16:48:10
2026
原创 LearnOpenGL——加载模型的中文路径问题和解决办法
LearnOpenGL在模型加载章节中文路径问题,ifstream使用的一个坑,以及最后渲染出来的图像的问题。
2024-12-26 21:36:21
763
原创 单例模式——C++实现
分别展示了饿汉式和懒汉式的单例类的实现,并给出了线程安全的版本。最后介绍了单例对象的析构办法。所有实例代码均使用C++实现。
2024-12-24 14:41:17
399
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人