
C++学习指南
小乖zypher
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅析C++写时复制机制(copy-on-write)
写时复制一般是用来节省内存的使用,一般的应用场景在于对象的使用大多的读操作而写操作很少,但是对象又涉及到内存的分配而且需要频繁拷贝对象。这时候写时复制就有大用处了。 MFC中的CString就用到了写时复制,当对一个CString进行拷贝时只是拷贝内部的字符串指针。 下面可以看一下CString的拷贝构造函数实现 CSimpleStringT(_In_ const CSimpleStringT& strSrc) { CStringData* pSrcData = strSrc.Ge.原创 2020-08-05 20:13:32 · 1663 阅读 · 0 评论 -
C++设计模式之享元模式
使用场景 当程序中使用到大量的类似对象实体时,大部分时候会出现内存不够用的情况。此时我们就可以考虑使用享元模式,一般在符合以下几点情况下来使用。1.是大量的对象 2.注重空间消耗而不是时间消耗 3.对象实体存在多种相同的内在属性。 大概思想 根据我所总结的就是将对象的大部分相同属性抽离出来实现一个共同属性结构,而其他的不共同属性保留下来让每个对象独立拥有。然后在使用的时候得先找到特有属性的...原创 2020-05-07 20:35:39 · 293 阅读 · 0 评论 -
C++设计模式之模板工厂模式
工厂模式一般分为简单工厂模式,工厂方法模式,抽象工厂模式,不过今天我介绍的是由模板实现的工厂模式,可以实现产品类自动注册到对应的工厂类,完全解耦,并且提供工厂单例访问。 fantory.h #pragma once #include <map> #include <string> //产品工具抽象类 template<class AbstractProduct...原创 2020-04-14 20:01:15 · 1526 阅读 · 0 评论 -
C++11实现生产者消费者模型
C++11实现生产者消费者模型 生产者消费者模型是什么 简单地举个例子,一个线程(或者进程)在往一个区域(可以使内存或其他地方)写数据,而同时有另外一个线程在取数据,这就存在了一个问题,存储的区域有限,数据存满了写数据的线程怎么办,还有数据空了,取数据的线程怎么处理,这时候就需要该模型来处理了。 原理 存储的数据的区域可以用一个队列来模拟,然后我们通过C++11提供的条件变量来通知写入线程在数据...原创 2020-04-09 20:18:48 · 2922 阅读 · 2 评论