关闭

设计模式_享元模式

享元模式 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。 比如所有的五子棋房间的棋子都是一样的。唯一的不同是每个棋子在不同的房间的不同棋盘的不同位置上。所以,对于棋子来说,我们不用放...
阅读(76) 评论(0)

设计模式_组合模式

组合模式 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 应用情景: 1、您想表示对象的部分-整体层次结构(树形结构)。 2、您希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 比如...
阅读(112) 评论(0)

设计模式_桥接模式

桥接模式 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 使用场景:        1、如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在...
阅读(93) 评论(0)

动态规划_背包问题

题目描述: 有编号分别为a,b,c,d,e的五件物品,它们的重量分别是2,2,6,5,4,它们的价值分别是6,3,5,4,6,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和? 假设f[i,j]表示在前i件物品中选择若干件放在承重为 j 的背包中,可以取得的最大价值。 状态好表示,如何描述状态转移方程呢? 决策:为了背包中物品总价值最大化,第 i件物品应该放入背...
阅读(74) 评论(0)

动态规划_最大非降子序列的长度

最长非降子序列问题:longest increasing subsequence 给定一整型数列{a1,a2...,an}(n>0),求最大的非降子序列的长度。 如:1 9 10 5 11 2 13的最长非降子序列是1 9 10 11 13,长度为5。 状态转移方程 dp【i】=max(dp【j】+1) ( j =a[ j ]) 用大白话解释就是: 想要求dp...
阅读(168) 评论(0)

设计模式_装饰者模式

装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 装饰模式提供了更加灵活的向对象添加职责的方式。可以用添加和分离的方法,用装饰在运行时刻增加和删除职责。装饰模式提供了一种“即用即付”的方 法来添加职责。它并不试图在一个复杂的可定制的类中支持所有可预见的特征,相反,你...
阅读(68) 评论(0)

设计模式_代理模式

代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 #ifndef _PROXY_H_ #define _PROXY_H_ #include class XImage { public: virtual void display() = 0;...
阅读(70) 评论(0)

设计模式_外观模式

外观模式 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 #ifndef _FACADE_H_ #define _FACADE_H_ #include //子系统1 class subSystemOne { public: void subMet...
阅读(236) 评论(0)

设计模式_适配器模式

#ifndef _ADAPTE_H_ #define _ATAPTE_H_ #include //现在的接口 class target { public:     virtual void request() = 0; }; class conTarget: public target { public:     void request() override...
阅读(100) 评论(0)

GDB实用教程

1. 调试stl容器等的时候不方便查看内容,可以自定义一个脚本。      调试的时候添加脚本(eg):source  ~/std.gdb ,然后就可以使用脚本中定义的函数查看内容。...
阅读(115) 评论(0)

error: jump to case label 或者 error: crosses initialization of 编译错误

代码: int main() {     int a =0;     switch(a)     {         case 0: int b = 0;break;         case 1: break;         default:break;     }     return 0; } 编译器提示错误: testswitch.cpp: In funct...
阅读(100) 评论(0)

git常见场景命令使用

1.我想查看某次提交修改了哪些内容,就像使用diff一样详细的列出来。         git  show  提交的commit ID              例如:  git show 9897e8f  (不知道commit id ,可以先使用git log查看得到,一长串数字便是)    有可能我只想看这次提交的某个文件修改的具体内容,        git  show  提交的co...
阅读(168) 评论(0)

设计模式_单例模式

单例模式就是保证一个类仅有一个实例,并提供一个访问它的全局访问点 #include class singleObject { public: static singleObject* getInstance(); inline void show(){ std::cout << "帝江最帅" << std::endl; } private: singleObject(){}; ...
阅读(161) 评论(0)

设计模式__工厂模式

您需要一辆什么类型汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。 #include using namespace std; class Shap { public:     virtual void draw()=0; }; class Rectangle : public Shap { public:...
阅读(214) 评论(0)

为LibreOffice的工具栏添加一个新功能流程

Now let's launch a bigger window than just a tiny little InfoBox. So we want to click on a graphic in Writer and have the option of saving the graphic/ picture to disk direct! Cool! So what we woul...
阅读(232) 评论(0)
35条 共3页首页 上一页 1 2 3 下一页 尾页
    个人资料
    • 访问:7791次
    • 积分:417
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4条
    最新评论