10 2023 档案
摘要:1 更新apt包列表: sudo apt update 2 安装依赖环境 sudo apt install -y build-essential checkinstall cmake pkg-config yasm git gfortran sudo apt update sudo apt inst
阅读全文
摘要:std::future 是 C++11 中的标准库类,用于异步任务的管理和获取结果。它允许你在一个线程中启动一个异步任务,然后在另一个线程中等待任务完成并获取其结果。 以下是使用 std::future 的常见用法: 启动异步任务: std::future<int> result = std::as
阅读全文
摘要:C++ 多线程相关 std::thread /******************************************************************************************* std::thread 如果没有调用 join 或者 detach 函
阅读全文
摘要:std::function: 可调用对象: 是一个函数指针 是一个具有 operator()成员函数的类对象(传说中的仿函数),lambda 表达式 是一个可被转换为函数指针的类对象 是一个类成员(函数)指针 bind 表达式或其它函数对象 而 std::function 就是上
阅读全文
摘要:移动语义: 浅拷贝:拷贝只是简单的赋值,两个指针指向同一块内存,析构时容易析构两次,造成内存泄露 深拷贝:拷贝会重新开辟内存,两个指针指向不同的内存,不会造成内存泄露问题* 移动语义:通过移动构造函数,转移资源的所有权,将对方的资源转移到自己身上,对方将失去对该资源的所有权(窃取) #include
阅读全文
摘要:C++Spdlog库安装教程 1 安装cmake,若已安装则跳过 sudo yum update sudo yum install cmake cmake --version 2 拉取spdlog库 git clone https://github.com/gabime/spdlog.git 3 创
阅读全文
摘要:C++ Poco库安装与使用 poco官网: https://pocoproject.org/ 下载poco基础版 解压 tar zxvf poco-1.12.4.tar.gz 进入poco-1.12.4目录 cd poco-1.12.4 安装(注意cmake版本,需3.5以上) ./configu
阅读全文
摘要:C++Boost库安装教程 下载安装包 官网https://www.boost.org 解压安装 tar -xf boost_1_80_0.tar.bz2 cd boost_1_80_0 ./bootstrap.sh ./b2 link=shared sudo ./b2 install 2.然后
阅读全文
摘要:设计模式-依赖倒转原则 //设计模式-依赖倒转原则 #include <iostream> using namespace std; //银行工作人员 class AbstractWorker{ public: virtual void DoBusiness() = 0; }; //专门负责办理存款
阅读全文
摘要:行为型-装饰模式 //装饰模式 /*装饰模式又叫包装模式,通过一种对客户端透明的方式来扩展对象功能,是继承关系的一种替代*/ #include <iostream> using namespace std; //一般情况下 用继承实现类的功能拓展 //装饰模式 可以用动态 //抽象英雄 class
阅读全文
摘要:行为型-观察者模式 //观察者模式 /*观察者模式是用于建立一种对象与对象之间的依赖关系, 一个对象发生改变时将自动通知其他对象,其他对象将做出相应的反应。*/ /*在观察者模式中,发生改变的对象称为观察对象,而被通知的对象称为观察者。 一个观察目标可以对应多个观察者*/ #include <ios
阅读全文
摘要:行为型-命令模式 //命令模式 #include <iostream> #include <queue> #include <Windows.h> using namespace std; //协议处理类 class HandleClientProtocol{ public: //处理增加金币 vo
阅读全文
摘要:行为型-策略模式 //策略模式 /*策略模式定义了一系列算法,并将每个算法封装起来,而且使它们 还可以相互替换。策略模式让算法独立于使用它的客户而独立变化*/ #include <iostream> using namespace std; //抽象武器 武器策略 class WeaponStrat
阅读全文
摘要:行为型-模板方法模式 //模板方法模式 #include <iostream> using namespace std; // class DrinkTemplate{ public: virtual void BoildWater() = 0; //煮水 virtual void Brew() =
阅读全文
摘要:结构型-适配器模式 //适配器模式 #include <iostream> #include <vector> #include <algorithm> using namespace std; //适配器模式 就是将已经写好的接口,但是这个接口不符合需求 //将写好的接口转换成目标接口 //这函数
阅读全文
摘要:结构型-外观模式 //外观模式: /*就是将复杂的子类系统抽象到同一个接口进行管理, 外界只需要通过此接口与子类系统进行交互 而不必要直接与复杂的子类系统进行交互*/ #include <iostream> using namespace std; //电视机 class Television{ p
阅读全文
摘要:结构型-代理模式 //代理模式:为其他对象提供一种代理以控制对这个对象的访问 #include <iostream> using namespace std; //提供一种代理来控制对其他对象的访问 class AbstractCommonInterface{ public: virtual voi
阅读全文
摘要:创建型-单例模式 //单例模式 只允许实例化一个对象 //将构造函数私有 #include <iostream> using namespace std; class A{ private: A(){ a = new A; } public: static A* getInstace(){ retu
阅读全文
摘要:创建型-抽象工厂模式 //抽象工厂模式 //抽象工厂针对的是产品族,而不是产品等级结构 #include <iostream> using namespace std; //抽象苹果 class AbstractApple{ public: virtual void ShowName() = 0;
阅读全文
摘要:创建型-工厂方法模式 //工厂模式-符合开闭原则 //缺:1.类的个数成倍数增加,导致类越来越多,增加维护成本 //2.需要自己判断创建类型(增加了系统的抽象性和理解难度) //优:1.不需要记住具体类名,甚至连具体参数都不用记住 //2.实现了对象创建和使用分离 //3系统的可扩展性也就变得非常好
阅读全文
摘要:创建型-简单工厂模式 //简单工厂模式 //1.增加新的功能是通过修改源代码实现,不符合开闭原则 //2.这个类职责过重,这个类发生问题,会影响很多使用这个工厂的模块 #include <iostream> using namespace std; //抽象水果类 class Fruit{ publ
阅读全文
摘要:高性能C++之无锁队列 lock_free_queue.h #pragma once #include <atomic> #include <vector> #include <cstddef> template<typename T, size_t N = 1024> class LockFree
阅读全文
摘要:对象池设计与实现 object_pool.h #ifndef _CELL_OBJECT_POOL_H_ #define _CELL_OBJECT_POOL_H_ #include<stdlib.h> #include<assert.h> #include<mutex> #ifdef _DEBUG #
阅读全文
摘要:内存池设计与实现 alloctor.h #ifndef _ALLOCTOR_H_ #define _ALLOCTOR_H_ void* operator new(size_t size); void operator delete(void* p); void* operator new[](siz
阅读全文
摘要:基于C++11 通用线程池 thread_pool.h #ifndef _PTHREAD_H_ #define _PTHREAD_H_ #include <iostream> #include <queue> #include <vector> #include <future> class Pth
阅读全文

浙公网安备 33010602011771号