
c/c++
文章平均质量分 80
郑同学zxc
这个作者很懒,什么都没留下…
展开
-
设计模式14-享元模式
运用共享技术有效地支持大量细粒度的对象。–《设计模式》GoF定义了对象的接口,可以接受外部状态。实现Flyweight接口,并为内部状态(不变部分)进行存储。并不是所有的Flyweight子类都需要被共享,非共享Flyweight类可以实现Flyweight接口,但它们不是共享的。创建并管理Flyweight对象,确保合理地共享Flyweight。面对对象很好的解决了抽象性的问题,但是作为一个运行在机器中的程序实体我们需要考虑对象的代价问题。原创 2024-07-25 23:21:36 · 1159 阅读 · 0 评论 -
设计模式13-单件模式
面向对象很好的解决了抽象的问题,但是必不可免的要付出一定的代价(类空间的重复分配等)。对于通常情况来讲,面向对象的成本大多都可以忽略不计。但某些情况面向对象所在的成本必须谨慎处理。设计模式中的对象性能模式是指那些专注于提高系统性能、优化资源使用和管理的设计模式。这些模式通过有效的对象创建、共享、复用和管理策略,减少内存占用、提高运行效率,从而提升整体系统性能。保证一个类仅有一个实力,并提供一个该实例的全局访问点。线程不安全版本:简单但在多线程环境下不安全。线程安全版本(锁代价高)原创 2024-07-24 00:07:36 · 1069 阅读 · 0 评论 -
设计模式12-构建器
构建器模式是一种强大的设计模式,通过将对象的构建过程分离出来,使得复杂对象的创建变得更加灵活和可维护。在C++中,构建器模式可以通过定义一个产品类、一个抽象构建器类、一个具体构建器类以及一个指挥者类来实现。这种模式广泛应用于需要创建复杂对象的场景中,例如GUI库中的窗口构建、报表生成、游戏中的复杂角色创建等。原创 2024-07-23 00:33:29 · 1170 阅读 · 0 评论 -
设计模式11-原型模式
通过对象创建模式绕开动态内存分配来避免创建过程中所导致的耦合过紧的问题。从而支持对象创建的稳定,它是接口抽象之后的第一步工作。原型模式同样用于隔离类对象的使用者和具体类型之间的耦合关系,同样要求这些异变类拥有稳定的接口。原型模式对于如何创建异变类的实体对象,采用原型克隆的方法来做。它使得我们可以非常灵活的动态创建。拥有某些稳定接口的新对象。所需工作仅仅是注册一个新类的对象即原型,然后在任何需要的地方克隆。原型模式中的克隆方法可以利用某些框架中的序列化,来实现深拷贝。原创 2024-07-19 00:20:04 · 1423 阅读 · 0 评论 -
设计模式7-装饰模式
在软件组件的设计中,如果责任划分的不清晰,使用记者得到的结果往往是跟随需求的变化,以及子类的增加而急剧膨胀。同时充值的重复代码。这个时候就应该责任划分清楚。使每个类负责自己的责任模块。这才是单一职责模式的关键。典型模式:装饰模式(decorator model),桥模式(Bridge model)动态组合的给一个对象增加一些额外的职责,就增加工人而言,装饰模式比生成子类更加灵活。也就是消除重复代码以及减少子类个数。职责分离:每个装饰器类(如和)只负责增加一个特定的功能,使得代码更符合单一职责原则。原创 2024-07-09 01:09:34 · 951 阅读 · 0 评论 -
Qt 的Q_PROPERTY关键字
为此,Qt 引入了元对象系统(Meta-Object System),允许在运行时对对象进行动态反射(reflection)。宏在类的声明中使用,Qt 的元对象编译器(moc,Meta-Object Compiler)会解析这些宏并生成额外的 C++ 代码来实现属性系统。是这个系统的一部分,它使得对象的属性可以被动态地获取和设置。宏是 Qt 框架中元对象系统的重要组成部分,它允许开发者在类中声明属性,使这些属性可以在运行时动态访问和操作。的详细说明,包括其由来、实现原理、特点、属性和应用。原创 2024-07-08 11:36:45 · 1128 阅读 · 0 评论 -
gperftools工具
include // CPU Profiler 头文件#include // Heap Profiler 头文件。// 指定输出文件名。// 启动 Heap Profiler。// 启动 CPU Profiler。//停止 CPU Profiler。// pprof文本分析。原创 2024-07-06 10:15:38 · 1297 阅读 · 0 评论 -
C语言使用正则表达式
在C语言中,可以使用POSIX正则表达式库来匹配正则表达式。POSIX正则表达式库提供了标准的正则表达式处理函数,例如。以下是一个完整的示例程序,演示如何在C语言中使用POSIX正则表达式库进行正则表达式匹配。使用POSIX正则表达式库可以方便地在C语言中进行正则表达式匹配,满足各种文本处理需求。,可以用来编译、执行和释放正则表达式。函数执行正则表达式匹配。不适用于windows。函数编译正则表达式。函数释放正则表达式。原创 2024-06-27 16:07:23 · 952 阅读 · 0 评论 -
工作随记-构造调用虚函数
通过将虚函数调用移到一个非虚的初始化函数中,可以避免在构造函数中直接调用虚函数,从而避免 Clang 静态分析工具发出的警告,并确保代码的正确性。原创 2024-06-21 14:50:03 · 506 阅读 · 1 评论 -
设计模式2-面向对象设计原则
变化是复用的天地。面向对象设计最大的优势在于抵御变化。重新认识面向对象。从宏观层面来看,面向对象的构建方式更能适应软件的变化。将变化所带来的影响减为最小。从微观层面来看面,面向对象的方式更强调这个类的责任。由于需求变化导致的增类型不应该影响原来类型的实现设计原则大于设计模式。可以通过设计原则发明设计模式.原创 2024-06-19 01:54:11 · 1062 阅读 · 0 评论 -
C语言实现BMP图片全彩转灰度,灰度转伪彩
C语言实现BMP图片全彩转灰度,灰度转伪彩转载 2022-08-18 16:43:29 · 783 阅读 · 0 评论 -
CentOS7编译和安装GCC7.5
CentOS7编译和安装GCC7.5一、 环境介绍:二、 为什么是GCC7.5三、 安装步骤3.1更新系统以及安装若干相关的包(包括gcc gcc-c++)3.2下载GCC7.5的工程文件(下面的步骤,建议在非root权限下操作)3.3安装若干gcc的依赖包3.4生成Makefile文件(下面这个是一行,请直接复制粘贴)3.5编译(这个编译比较耗时)3.6安装(需要root权限)3.7查看gcc版本3.8动态库 libstdc++.so.6 的更新(在root权限下进行下面的操作)3.9转载 2021-08-31 22:43:52 · 2870 阅读 · 0 评论 -
C++ explicit关键字详解
C++ explicit关键字详解转载 2021-08-23 23:57:56 · 101 阅读 · 0 评论 -
我有一个问题,希望看见的大佬能帮忙顺手解惑
我有一个问题问题1问题1在源码文件在utf-8格式下#include <iostream>using namespace std;#include <time.h>#include <stdint.h>#include <string.h>int main(int argc, char** argv) // map a normal file as shared mem:{ int Num2 = 0xffffffff; c原创 2021-08-18 09:34:47 · 93 阅读 · 0 评论 -
Linux系统编程笔记:进程间通信
Linux系统编程笔记:进程间通信IPCIPC分类管道管道的概念:管道的局限性:尽管有局限性,半双工管道仍是最常用的 IPC管道的优劣FIFO共享存储映射存储映射I/O简介系统调用:总结:IPCLinux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,I原创 2021-03-18 08:50:39 · 76 阅读 · 0 评论 -
Linux基本操作(2)
Linux基本操作(2)1. 压缩包管理2. 进程管理:3. 网络管理:4. ftp服务器搭建: -- vsftpd5. nfs服务器搭建:6. ssh服务器:7. scp命令8. 其他命令:9. 关机重启1. 压缩包管理 1>. 屌丝版: 1). gzip -- .gz格式的压缩包 2). bzip2 -- .bz2格式的压缩包 2>. 高富帅版: 1). tar -- 不使用z/j参数 , 该命令只能对文件或目录打包 参数: c -- 创建 --原创 2021-01-28 13:41:07 · 394 阅读 · 1 评论 -
Linux基本操作(1)
Linux基本操作Linux 系统目录结构用户目录文件和目录操作文件权限,用户,用户组查找与检索软件的安装和卸载软件源磁盘管理磁盘命名Linux 系统目录结构以下是对这些目录的解释:/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。/e原创 2020-12-24 19:20:19 · 448 阅读 · 1 评论 -
vs上函数局部变量压栈为什么相差是12字节优快云
#函数的压栈函数的压栈这里就不多废话。直接附上其他大佬的解释。函数局部变量入栈顺序与变量输出关系之前在Linux和VC上函数的局部变量的压栈都是一个字长,但是昨天在验证引用到底占不占内存时,突然发现VS2017上函数局部变量压栈是12个字节这就让我很抓狂了,下面时内存以及代码图是x86环境调试的...原创 2020-05-02 12:05:20 · 456 阅读 · 0 评论