- 博客(64)
- 收藏
- 关注
原创 邻接表建图
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<queue>using namespace std;#define MaxvertexNum 80#define INFINITY 65535struct DataType { int a, b, c;};typedef struc...
2019-09-25 23:17:33
298
原创 B+树和Hash索引
特点:非叶子节点的子树指针和关键字相同 非叶子节点的子树指针P[i],指向关键字值【k[i],k[i+1]】的子树 非叶子节点不存储数据,仅存储索引,这样就意味着可以存储更多的关键字了,使得树变得更矮胖(io操作也随之减少)。 所有的叶子节点均有一个链指针指向下一个叶子节点 ,按顺序连接,方便我们在叶子节点进行范围统计。B+树更适合做索引B+树的磁盘读写代价更低 B+树的查询...
2019-08-21 15:37:55
204
原创 关于单例模式的写法理解
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
199
原创 关于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
243
原创 socket通讯学习(1)
完成windows和linux系统之间的配置共享安装samba sudo apt-get install samba;vim /etc/samba/smb.conf结尾处添加:[code]path=/codewriteable=yesbrowseable=yesguest ok=yes然后重启 pkill smbdsmbdps -ef | grep ...
2019-08-04 10:08:19
120
转载 H.264编解码器
JMH.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
137
原创 session与cookie的区别
(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。它只允许4kb它没有在cookie中保存多个变量。(2)cookie的存储限制了数据量,只允许4KB,而session是无限量的(3)我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此它更安全(4)设置cookie时间可以使cookie过期。但是使用session-dest...
2019-06-21 09:58:38
125
原创 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
537
原创 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
201
原创 迭代器模式
#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
143
原创 解释器模式
#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
100
原创 状态模式
#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
104
原创 访问者模式
#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
98
原创 备忘录模式
#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
104
原创 观察者模式
适用于:定义对象间一对多的依赖关系,使得每一个对象改变状态,则所有以来于他们的对象都会得到通知#include<list>class Secretary;//观察者class PlayerObserver {public: PlayerObserver(Secretary *secretary) { this->m_secretary = secret...
2019-05-17 13:32:02
212
原创 中介者模式
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
92
原创 策略模式
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
139
原创 责任链模式
该模式构造一系列分别担当不同职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称为责任链模式。class CarHandle {public: virtual void HandleCar()=0; CarHandle* setnextHandle(CarHandle *handle) { this->m_carhandle = handle; ...
2019-05-15 11:54:27
250
原创 命令模式
#include<list>class Doctor {public: void treat_eye() { cout << "医生治疗眼睛" << endl; } void treat_nose() { cout << "医生治疗鼻子" << endl; }};class Command {public:...
2019-05-14 23:06:01
147
原创 模板模式
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
108
原创 计算机网络学习笔记(一)
1.总时延=发送时延+传播时延+处理时延+排队时延2.具有五层协议的体系结构,OSI有七层协议结构,TCP/IP是一个四层体系结构。综合OSI和TCP/IP优点,采用只有五层协议的体系结构,这协议是部署在边缘的设备采用的。核心部分只有网络层应用层:功能是通过应用进程间的交互完成特定网络应用。代表协议:http/SMTP/FTP运输层:负责向两个主机中进程间的通信提供通用的数据传输...
2019-05-13 10:47:20
157
原创 享元模式
#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
101
原创 组合模式&&外观模式
组合模式#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
408
原创 桥接模式
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
192
原创 代理模式&&装饰模式
一.代理模式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
124
原创 原型模式
一个复杂的对象,具有自我复制的功能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
102
原创 建造者模式
#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
99
原创 简单工厂模式和工厂模式
(简单工厂模式不是标准的设计模式)class Fruit{public: virtual void getFruit()=0;}class Banana:public Fruit{public: virtual void getFruit() { cout<<"我是香蕉"<<endl; }};clas...
2019-05-09 23:11:12
256
原创 设计模式C++ (基本原则)
1.设计模式的基本原则:开放封闭原则:类的改动应该是通过增加代码实现而不是更改代码class BankWorker{public: void save(){cout<<"存款"<<endl;} void moveM(){cout<<"转账"<<endl} void giveM(){cout<<"缴费"...
2019-05-09 21:09:49
163
原创 图
邻接矩阵表示图: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
99
原创 用数组来建立一个最小堆
#define MaxN 1001#define MinH -10001int 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
1225
原创 二叉搜索树
左节点比父亲节点小,右节点比父亲节点大//二叉搜索树往二叉搜索数中插入节点BiTree* Insert(ElementType X,Bitree* BST){ if(!BST)//意思是BST是一个空树 { *BST=(Bitree*)malloc(sizeof(BiTree)); BST->data=X; BST-...
2019-05-08 09:51:45
92
原创 并查集
并查集查找:首先我们先定义一个结构体struct SetType{ ElementType data; int Parent;}data是数据,parent是指向和哪个有连接的下标。比如说表格所示,用数组存储的数据。存储了三个集合现在我想找一个data=x的元素属于哪个集合,下面是find函数int Find(settype a[],int X)...
2019-05-08 09:46:45
111
原创 哈夫曼树的构造
每次把权值最小的两颗二叉树合并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
313
原创 栈的应用
1.就近原则(匹配字符串括号)int isleft(char c){ int ret=0; switch(c){ case '<': case '{': case '(': case '[': case '\'': case '\"': ret=1;...
2019-05-06 20:29:40
119
原创 栈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
562
原创 双向链表
1.创建链表2.销毁链表3.获取链表长度4.清空链表5.获取第pos个元素6.插入元素到位置pos7.删除位置pos的元素typedef struct _tag_DLinkListNode{ struct _tag_DLinkListNode* next; struct _tag_DLinkListNode* pre;}DlinkListNode;...
2019-05-04 15:24:43
103
原创 C++类型转换
1.类型转换名称和语法C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)aC++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。static_cast 静态类型转换。如int转换成charreinterpreter_cast 重新解释类型dynamic_cast 命名上理解是动态类型转换。如子类和父类之间的多态类型...
2019-05-02 13:03:54
79
原创 单向链表逆置操作
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
246
原创 单向链表基本操作
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
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人