- 博客(64)
- 收藏
- 关注
原创 邻接表建图
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<queue> using namespace std; #define MaxvertexNum 80 #define INFINITY 65535 struct DataType { int a, b, c; }; typedef struc...
2019-09-25 23:17:33
327
原创 B+树和Hash索引
特点: 非叶子节点的子树指针和关键字相同 非叶子节点的子树指针P[i],指向关键字值【k[i],k[i+1]】的子树 非叶子节点不存储数据,仅存储索引,这样就意味着可以存储更多的关键字了,使得树变得更矮胖(io操作也随之减少)。 所有的叶子节点均有一个链指针指向下一个叶子节点 ,按顺序连接,方便我们在叶子节点进行范围统计。 B+树更适合做索引 B+树的磁盘读写代价更低 B+树的查询...
2019-08-21 15:37:55
248
原创 关于单例模式的写法理解
class MyCas { private: MyCas() { } private: static MyCas *m_instance; public: static MyCas *Getinstance() { if (m_instance == NULL) { m_instance = new MyCas(); static cGarhuishou c1; }...
2019-08-17 11:33:13
239
原创 关于std::async的学习总结
一.std::async : 它是用来创建异步任务,会返回一个std::future对象。 std::future是一个类模板。使用实例: std::future<int> result = std::async(std::launch::deferred | std::launch::async,myThread,10); async的两个参数设置: std::launc...
2019-08-17 11:32:44
272
原创 socket通讯学习(1)
完成windows和linux系统之间的配置共享 安装samba sudo apt-get install samba; vim /etc/samba/smb.conf 结尾处添加: [code] path=/code writeable=yes browseable=yes guest ok=yes 然后重启 pkill smbd smbd ps -ef | grep ...
2019-08-04 10:08:19
150
转载 H.264编解码器
JM H.264标准研究团队的官方参考软件 实现了H.264的全部特征 运算复杂,无优化,编解码难以实时 常用于科学研究领域http://iphome.hhi.de/suehring/tml/ 旧版本下载 http://iphome.hhi.de/suehring/tml/download/old_jm/ X264 著名的H.264开源编码器,由开源组织VideoLan开发制定(VLC播放器是...
2019-07-15 20:11:50
163
原创 session与cookie的区别
(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。它只允许4kb它没有在cookie中保存多个变量。 (2)cookie的存储限制了数据量,只允许4KB,而session是无限量的 (3)我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此它更安全 (4)设置cookie时间可以使cookie过期。但是使用session-dest...
2019-06-21 09:58:38
152
原创 socket(C++)客户端和服务端
服务端 #define _WINSOCK_DEPRECATED_NO_WARNINGS #include<WinSock2.h> #include<stdio.h> #define PORT 5150 #define MSGSIZE 1024 #pragma comment(lib,"ws2_32.lib") void main() { //1.初始化 WS...
2019-06-20 11:37:00
581
原创 C++调用Mysql
#define _CRT_SECURE_NO_WARNINGS #include "stdio.h" #include <mysql.h> int main() { MYSQL * con; //= mysql_init((MYSQL*) 0); MYSQL_RES *res; MYSQL_ROW row; char tmp[400]; //database confi...
2019-06-02 09:36:36
238
原创 迭代器模式
#include <iostream> using namespace std; // MyIterator Aggregate ContreteIterator ConcreteAggregate // a b c d // ▲ typedef int Object ; #define SIZE 5 class MyIterator { public: ...
2019-05-17 21:22:12
161
原创 解释器模式
#include <iostream> using namespace std; // Context // Expression // PlusExpression MinusExpression class Context { public: Context(int num) { this->m_num = num; } int getNum(...
2019-05-17 20:39:43
126
原创 状态模式
#include <iostream> using namespace std; class Worker; class State { public: virtual void doSomeThing(Worker *w) = 0; }; class Worker { public: Worker(); int getHour() { return m_hour;...
2019-05-17 17:52:38
128
原创 访问者模式
#include<string> #include<list> class Park; class Visitor { public: virtual void visit(Park *park) = 0; }; class Park { public: Park(string name) { this->ParkName = name; } strin...
2019-05-17 15:55:10
124
原创 备忘录模式
#include <iostream> using namespace std; #include "string" //Caretaker 管理者 // MememTo 备忘录 class MememTo { public: MememTo(string name, int age) { m_name = name; m_age = age; } string...
2019-05-17 15:01:49
131
原创 观察者模式
适用于:定义对象间一对多的依赖关系,使得每一个对象改变状态,则所有以来于他们的对象都会得到通知 #include<list> class Secretary; //观察者 class PlayerObserver { public: PlayerObserver(Secretary *secretary) { this->m_secretary = secret...
2019-05-17 13:32:02
245
原创 中介者模式
class Mediator; class Person { public: Person(string name, int sex, int condi,Mediator *mediator) { m_name = name; m_sex = sex; m_condi = condi; m_mediator = mediator; } string getName() ...
2019-05-16 21:40:08
117
原创 策略模式
class Strategy { public: virtual void crypt() = 0; }; class AES :public Strategy{ public: virtual void crypt() { cout << "AES加密算法" << endl; } }; class DES :public Strategy { public: ...
2019-05-15 23:14:54
166
原创 责任链模式
该模式构造一系列分别担当不同职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称为责任链模式。 class CarHandle { public: virtual void HandleCar()=0; CarHandle* setnextHandle(CarHandle *handle) { this->m_carhandle = handle; ...
2019-05-15 11:54:27
281
原创 命令模式
#include<list> class Doctor { public: void treat_eye() { cout << "医生治疗眼睛" << endl; } void treat_nose() { cout << "医生治疗鼻子" << endl; } }; class Command { public:...
2019-05-14 23:06:01
177
原创 模板模式
class MakeCar { public: virtual void MakeHead() = 0; virtual void MakeBody() = 0; virtual void MakeTail() = 0; public: void make() { MakeHead(); MakeBody(); MakeTail(); } private: }; cla...
2019-05-14 22:46:40
130
原创 计算机网络学习笔记(一)
1.总时延=发送时延+传播时延+处理时延+排队时延 2.具有五层协议的体系结构,OSI有七层协议结构,TCP/IP是一个四层体系结构。综合OSI和TCP/IP优点,采用只有五层协议的体系结构,这协议是部署在边缘的设备采用的。核心部分只有网络层 应用层:功能是通过应用进程间的交互完成特定网络应用。代表协议:http/SMTP/FTP 运输层:负责向两个主机中进程间的通信提供通用的数据传输...
2019-05-13 10:47:20
181
原创 享元模式
#include "map" class Person { public: Person(string name, int age) { this->m_name = name; this->age = age; } virtual void printT() = 0; protected: string m_name; int age; }; class...
2019-05-12 15:22:41
121
原创 组合模式&&外观模式
组合模式 #include<list> class IFile { public: virtual void display() = 0; virtual int add(IFile *ifile) = 0;//添加一个文件 virtual int remove(IFile *ifile) = 0;//移除一个文件 virtual list<IFile *>* ...
2019-05-12 13:31:35
440
原创 桥接模式
class Engine { public: virtual void InstallEngine() = 0; }; class _4400ss:public Engine{ public: virtual void InstallEngine(){ cout << "4400c发动机"<< endl; } }; class _4500ss :public E...
2019-05-10 21:14:21
222
原创 代理模式&&装饰模式
一.代理模式 class Subject { public: virtual void sailbook() = 0; }; class RealSubjectBook { public: virtual void sailbook() { cout << "实体店卖书" << endl; } }; class dangdang :public Subjec...
2019-05-10 16:32:23
143
原创 原型模式
一个复杂的对象,具有自我复制的功能 class Person { public: virtual Person *clone()=0; virtual void prinT()=0; }; class CPlusProgrammer :public Person { public: CPlusProgrammer() { this->m_name = ""; this-&...
2019-05-10 15:05:57
125
原创 建造者模式
#include<iostream> #include<stdio.h> using namespace std; #include<string> //对象的表示 class House { public: void setFloor(string floor) { this->m_floor = floor; } void setW...
2019-05-10 13:39:41
117
原创 简单工厂模式和工厂模式
(简单工厂模式不是标准的设计模式) class Fruit{ public: virtual void getFruit()=0; } class Banana:public Fruit { public: virtual void getFruit() { cout<<"我是香蕉"<<endl; } }; clas...
2019-05-09 23:11:12
294
原创 设计模式C++ (基本原则)
1.设计模式的基本原则: 开放封闭原则:类的改动应该是通过增加代码实现而不是更改代码 class BankWorker { public: void save(){cout<<"存款"<<endl;} void moveM(){cout<<"转账"<<endl} void giveM(){cout<<"缴费"...
2019-05-09 21:09:49
191
原创 图
邻接矩阵表示图: 1.图(邻接矩阵)初始化 typedef struct GNode *PtrToGNode; struct GNode{ int Nv; int Ne; WeightType G[MaxVertexNum][MaxVertexNum]; }; typedef PtrToGNode MGraph; typedef int Vertex; MGrap...
2019-05-08 16:17:09
116
原创 用数组来建立一个最小堆
#define MaxN 1001 #define MinH -10001 int H[MaxN],size; void Creat() { size=0; H[0]=MinH;//堆都是从下标为1开始的,在0处设置一个哨兵,最小值。 } void Insert(int x) { int i; for(i=++size;H[i/2]>x;i/=2) ...
2019-05-08 10:34:20
1268
原创 二叉搜索树
左节点比父亲节点小,右节点比父亲节点大//二叉搜索树 往二叉搜索数中插入节点 BiTree* Insert(ElementType X,Bitree* BST) { if(!BST)//意思是BST是一个空树 { *BST=(Bitree*)malloc(sizeof(BiTree)); BST->data=X; BST-...
2019-05-08 09:51:45
110
原创 并查集
并查集查找: 首先我们先定义一个结构体 struct SetType{ ElementType data; int Parent; } data是数据,parent是指向和哪个有连接的下标。 比如说表格所示,用数组存储的数据。存储了三个集合 现在我想找一个data=x的元素属于哪个集合,下面是find函数 int Find(settype a[],int X)...
2019-05-08 09:46:45
136
原创 哈夫曼树的构造
每次把权值最小的两颗二叉树合并 typedef struct TreeNode *HuffmanTree; struct TreeNode{ int weight; HuffmanTree left,right; } HuffmanTree Huffman(MinHeap H) { int i;HuffmanTree T; BuildMinHeap(H)//...
2019-05-07 20:25:36
341
原创 栈的应用
1.就近原则(匹配字符串括号) int isleft(char c) { int ret=0; switch(c){ case '<': case '{': case '(': case '[': case '\'': case '\"': ret=1;...
2019-05-06 20:29:40
140
原创 栈Stack (线性表实现)
1.栈是一种特殊的线性表 linklist.h文件 #ifndef _MYLINKLIST_H_ #define _MYLINKLIST_H_ typedef void LinkList; /* typedef struct _tag_LinkListNode LinkListNode; struct _tag_LinkListNode { LinkListNode* next; }; ...
2019-05-04 17:09:17
583
原创 双向链表
1.创建链表 2.销毁链表 3.获取链表长度 4.清空链表 5.获取第pos个元素 6.插入元素到位置pos 7.删除位置pos的元素 typedef struct _tag_DLinkListNode { struct _tag_DLinkListNode* next; struct _tag_DLinkListNode* pre; }DlinkListNode;...
2019-05-04 15:24:43
119
原创 C++类型转换
1.类型转换名称和语法 C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 static_cast 静态类型转换。如int转换成char reinterpreter_cast 重新解释类型 dynamic_cast 命名上理解是动态类型转换。如子类和父类之间的多态类型...
2019-05-02 13:03:54
105
原创 单向链表逆置操作
1.主要是利用头插法,先初始化一个空的逆置链表,再按顺序遍历原始链表,根据头插法来填充逆置链表 typename struct Node{ int data; Node *next; } //链表逆置 Node *reverse_list(Node *ls) { Node *p,*q; p=ls->next; ls->next=NULL ...
2019-05-01 15:57:22
277
原创 单向链表基本操作
struct list{ int data; struct list *next; }//节点定义 //创建一个节点 struct list *create_list() { return calloc(sizeof(struct list),1); } //遍历链表 void traverse_list(struct list *s) { struct list...
2019-05-01 14:19:50
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅