自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

转载 Linux下Redis的安装和部署

一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。

2017-06-27 09:42:34 519

原创 HTTP权威指南读书笔记四:HTTP连接那些事

一、HTTP事务延迟(1)DNS解析,将客户端输入的主机名转换成ip地址需要大约10s时间;(2)建立TCP连接,1~2s(3)发送HTTP报文与接收HTTP报文。二、TCP时延(1)TCP连接建立握手:通常一次HTTP事务处理的数据量不大,一次TCP握手会占用大部分时间(大约50%)(2)TCP慢启动拥塞控制:TCP连接会随着网络的拥塞程度进行加快或减缓窗口大小,

2017-04-23 20:55:50 399

原创 HTTP权威指南读书笔记三:HTTP报文

一、组成起始行+首部块+主体(可选)1.请求报文格式: 2.响应报文 (1)method方法,客户端希望服务器对资源的操作(2)request-URL请求URL,为资源的url地址(3)version版本, 报文所使用的HTTP版本(4)status状态码,描述请求过程中发生的情况(5)reason-phrase原因短语,

2017-04-23 17:04:12 576

原创 HTTP权威指南读书笔记二:关于url的那些事

一、urlurl表示互联网中某一资源的特定位置。组成:://:@:/;?#(1)scheme方案:访问服务器时所使用的协议(2)user用户:某些方案访问资源时需要用户名(3)password密码:用户名的密码(4)host主机:资源宿主服务器的主机名或点分ip地址(5)port端口:服务器正在监听的端口号(6)path路径:服务器上资源的存放地址(7)para

2017-04-23 16:04:59 418

原创 HTTP权威指南读书笔记一:HTTP简介

HTTP是web服务器和客户端传送数据的协议,通过建立一条有效连接进行传输数据。web服务器存放的是请求的资源,包括静态文件,如HTML页面,图片,文本文件等,还包括动态页面,如股市交易信息等。本篇博客只是简单介绍,后续会进行详细说明。一、数据传输类型MIME(Multipurpose Internet Mail Extendsion多媒体英特网邮件扩展),Web服务器会给所有的HTTP对

2017-04-18 17:55:13 547

原创 leedcode—— single-number

题目:Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without

2017-03-27 16:15:20 385

原创 leedcode—— word-break

题目:Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.For example, givens ="leetcode",dict =

2017-03-27 15:55:13 432

原创 leedcode——判断单链表是否有环及寻找环的入口点

题目:Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull.Follow up:Can you solve it without using extra space?思路:(1)设置快慢指针,因为链表中有环,所以最终会相遇,相

2017-03-27 15:05:31 541

原创 leedcode——reorder list

题目:Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given{1,2,3,4}, reorde

2017-03-27 11:40:34 347

原创 leedcode——二叉树的前序遍历

题目:Given a binary tree, return the preorder traversal of its nodes' values.思路:(1)递归方法:打印根节点,递归左孩子,递归右孩子(2)非递归方法:将根节点入栈,栈不为空时,获取栈顶元素,打印栈顶元素,如果右孩子不为空,右孩子入栈,如果左孩子不为空,左孩子入栈。(原因:栈是先进后出的顺序,右孩子先入栈最后才

2017-03-23 15:37:56 348

原创 leedcode——二叉树的后序遍历

题目:Given a binary tree, return the postorder traversal of its nodes' values.思路:(1)递归方法,递归打印左孩子,递归打印右孩子,打印根节点。(2)非递归方法,使用栈,逐层push左孩子,如果右孩子为NULL或已经打印过,打印根节点,否则把右孩子重复上述步骤。递归代码:/** * Definiti

2017-03-23 15:19:39 408

原创 leedcode——链表插入排序

题目:Sort a linked list using insertion sort.思路:定义一个临时链表存放已排序好的链表,将未排序好的节点依次插入。链表元素:1,3,8,4,6,5,2(递归到最后一个节点2)第一轮:temp链表元素为2,head 为5,操作:将5插入到2后面第二轮:temp链表元素为2,5,head为6,操作:将6插入到5后面第三轮:temp链表元素

2017-03-22 16:34:43 430

原创 leedcode——链表排序

题目:Sort a linked list in O(n log n) time using constant space complexity.思路1:利用快慢指针找到中间节点,将链表分成两部分,通过递归对左半部分进行递归排序,然后对右半部分进行递归排序,最后将两个链表进行递归排序。思路2:采用快速排序思想,将链表划分成有序链表和无序链表,通过链表插入与删除完成排序。代码1:

2017-03-22 15:45:57 328

原创 leedcode——Max Point on a Line

题目:Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.思路:使用穷举法解决。先从第一个节点节点开始,循环遍历其他节点,由两点确定一条直线可得,遍历其他节点,通过斜率判断其他剩余节点是否在这条直线上,在直线上则count加1代码:/**

2017-03-22 11:26:55 335

原创 leedcode逆波兰表达式

题目:Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are+,-,*,/. Each operand may be an integer or another expression.Some examples:["2", "1", "+", "3",

2017-03-22 10:45:06 315

原创 leedcode二叉树的最小深度与最大深度

一、最小深度     二叉树的最小深度为根节点到最近叶子的距离。(1)空树直接返回false;(2)只有一个根节点,返回深度1;(3)单分支情况:左子树为空,返回右子树的最大值+1;右子树为空,返回左子树的最大值+1;(4)双分支情况:返回左右子树的最小值+1.class Solution {public: int run(TreeNode *root)

2017-03-21 22:42:45 373

原创 类型转换的四个关键字

一、static_cast格式:static_cast ( expression )功能:将表达式expression转换成最终想要的类型type-id类型,由于是非多态的转换,即运行时没有动态的类型检查,所以转换不能保证安全性。《C++Perimer》指明编译器隐式执行的任何类型转化都能通过static_cast 显示完成。因而,static_cast支持两种类型相关的转换。用途:

2017-03-09 15:27:33 588

原创 STL源码剖析之基本算法<stl_algobase.h>

一、equal作用:判断[first,last)区间两个元素是否相同,第二个迭代器多出来的元素不予考虑。template //版本1inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { for ( ; __first1 != __la

2017-03-08 15:48:38 437

原创 STL源码剖析之数值算法<numeric.h>

一、accumulate作用:初始化init,对区间[first,last)的迭代器i执行init += *i或init = binaryop(init,*i)。 template //版本1,用来计算init和[first,last)区间元素的总和_Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __in

2017-03-08 15:41:04 473

原创 Linux命令之文件目录类命令

1.cd作用:切换目录格式:cd+路径eg:cd / 切换到根目录  cd ~ 切换到家目录  cd .. 切换到上一级目录  cd - 切换到上一个动作目录2.dir作用:显示目录内容,文件权限等详细信息格式:dir+选项+格式名eg:dir -l /home/user/Dir 显示/home/user/Dir所有内容3.ls 作用:显示目录内容

2017-03-07 19:40:34 334

原创 STL源码剖析之序列容器deque

一、定义deque是两端都可以插入删除的线性表。图示:deque与vector的区别:(1)deque两端都可已插入删除,vector只在尾端插入删除;(2)deque没有容量的概念,它是由分段连续空间组成的,随时可以增加一个新的空间并连接起来,vector为连续的内存可增长的地址空间。二、deque数据结构deque采用一小段的map作为主控,每个元素都是一个

2017-03-02 20:03:58 421

原创 STL源码剖析之序列容器list

一、定义容器list的特点是每次插入一个元素就配置一个空间,每次删除一个元素就释放一个空间。结构定义如下:struct _List_node_base { _List_node_base* _M_next;//后继指针 _List_node_base* _M_prev;//前驱指针};template struct _List_node : public _List_nod

2017-03-02 18:36:45 334

原创 STL源码剖析之序列式容器vector

一、定义vector底层是动态分配的数组,随着元素的增加,内部机制会自动扩充空间以容纳新的元素。

2017-03-01 20:29:09 463

原创 STL源码剖析之traits编程技巧

在迭代器中,不同数据结构都有其专属的迭代器,不同的迭代器具有不同属性,算法根据迭代器的不同属性自动的选择执行,这其中技术由traits编程技术完成的,它是通过“内嵌类型”与C++template参数推导功能,解决C++类型识别问题。迭代器所指向对象的型别成为迭代器的value_type。//内嵌型别处理templateclass Iterator{public: typede

2017-03-01 19:04:45 394

原创 STL源码剖析之迭代器Iterator

在设计模式中,迭代器的定义如下:提供一种方法能够依次访问聚合元素而又无需暴露内部的表达方式。由于STL标准库中的设计将容器与算法相互分隔开,迭代器扮演之间的粘合剂。一、设计原理STL中迭代器为智能指针(smart pointer),指针具有的行为有->和*,因此迭代器会重载operator->和operator*。STL中有个auto_ptr原生指针可供参考学习。二、auto_ptr

2017-03-01 16:43:05 435

原创 设计模式之迭代器模式

定义:

2017-03-01 11:29:36 272

原创 cocos2d-x-3.14.1的安装

(1)首先需要VS2015的开发环境,这个没有什么可说的(2)安装python 2.7,版本必须正确2.X(3)www.cocos2d-x.com下载软件包(4)进入引擎根目录执行setup.py

2017-02-28 20:49:58 1089

原创 STL源码剖析之空间配置器Allocator

Object a = new Object();delete a;   一般地,对象的构造过程包含两步:(1)调用运算符new进行空间分配;(2)调用构造函数构造对象内容。对象的析构函数也包含两步:(1)调用对象的析构函数;(2)调用运算符delete释放内存。   STL中内存操作由alloc:allocate()完成,它是对运算符new的封装,内存释放由alloc:deallo

2017-02-28 19:29:00 489

原创 设计模式之建造者模式

定义:将一个复杂的构造过程与它的表示分离,使同样的构造过程具有不同的表示。举例:顾客通过服务员点餐,构建出一份菜单,而由厨师去完成这份菜单。图示:特点:(1)创建复杂对象的算法与对象的显示分离;(2)允许相同构造过程具有不同的表示。实现:class Builder { public: virtual void CreateZhushi()

2017-02-27 21:03:11 280

原创 设计模式之抽象工厂Abstract Factory

定义:提供一个创建一系列相关或相互依赖对象的接口,而无须指定具体的类。图示:特点:(1)抽象工厂创建的是工厂,工厂里有产品的具体实现;(2)抽象工厂可以生产多个产品等级;(3)抽象工厂只显示接口,而不是实现。实现:abstract class AbstractFactroy//抽象接口{public: abstract AbstractProductA Cre

2017-02-27 21:00:00 430

原创 设计模式之单例模式

定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。图示:      特点:(1)一个类只有一个实例;            (2)该类能自行创建这个实例;    (3)该类能向整个系统返回这个实例。实现:具有静态私有对象,私有的构造函数和公有的静态函数用于创建静态私有对象。class Singleton{private: static Singleto

2017-02-27 19:30:19 319

原创 队列的链式实现

一、链式队列队列不仅可以用顺序存储,也可以向单链表一样,用链式存储,只不过队列链式存储需要头指针(front)和尾指针(rear),分别指向队头和队尾,数据只能在对头一端删除, 在队尾一端插入。图示:二、实现代码Queue.h#pragma once#define ElemType int//链式队列typedef struct{ ElemType data;//

2017-02-26 10:40:28 378

原创 环形顺序队列的实现

一、队列的定义队列是一种特殊的线性表,线性表两端都可以进行插入删除,而队列只能在队头删除,队尾插入。插入元素称为入队,删除元素称为出队。特点:(1)队列只允许在队头插入,队尾删除;(2)先入队的元素在对头,后入队的元素在队尾;(3)队列遵循“先进先出”的原则。图示:  (1)普通队列(2)环形队列二、存储结构及实现Queue.h#pragma

2017-02-22 11:27:55 4576 1

原创 链栈的实现

一、栈的定义栈可理解为一种受限制的单链表,单链表可在标的两端进行插入删除,栈只能在一端进行插入删除,插入操作成为入栈(push),删除操作成为出栈(pop)。允许插入删除的一端称为栈顶(Top),另一端称为栈底(Button)。特点:(1)只能在栈顶进行插入删除;(2)先入栈的元素在栈底,后入栈的元素在栈顶;(2)具有“先进后出”(Last In First Out)的原则。

2017-02-22 10:52:01 543

原创 双向链表链表的实现

引言上一篇博客讲到单链表的结点中

2017-02-19 15:12:42 458

原创 线性表的链式存储

引言上一篇博客说到,线性表的顺序存储对于插入删除一个元素需要大量移动元素,那么对于插入删除频繁的线性表,我们就要考虑换另一种存储结构,尽量使得插入删除的时间复杂度为O(1)。一、单链表相较于顺序存储用连续的存储单元存储,单链表采用链式存储结构,用一组地址任意的存储单元存储数据元素。特点:(1)存储单元可以是不连续的,即逻辑结构与物理结构可以不相同;(2)元素用结点存储,

2017-02-13 20:43:37 315

原创 线性表的顺序存储结构

一、线性表的定义线性表是一种线性结构,它包含n≥0个元素,除第一元素个外集合中每一个元素都有一个前驱,除最后一个元素外集合中每一个元素都有一个后继。二、线性表的特性(1)线性表中每一个元素都有其确定的位置;      (2)线性表中每一个元素都具有相同特性;      (3)相邻元素之间存在序偶关系。三、顺序存储用一组地址连续的存储单元存储线性表的每一个元素  优缺

2017-02-13 10:55:50 357

原创 Linux下地址映射原理

一、Intel x86芯片发展过程      在x86体系中,8086及以前是16位处理机,80386是32位处理机,80286是16位到32位的过渡芯片。这里CPU的位数是指“算术逻辑单元ALU”的宽度,也指数据总线的条数。通常数据总线的条数与地址总线的条数保持一致,但8位CPU的寻址能力仅仅能够寻访256个地址单元,这显然是不够的,因此,8位CPU地址总线的宽度设计为16位,即地址空间

2016-11-30 09:48:27 808

原创 C++继承与多态详解

C++继承与多态一、继承与多态的介绍继承可以通过使用现有的类或接口扩展所需的功能,从而实现代码的复用。      多态可以使不同的对象调用相同的函数名运行出不同的结果。二、继承(1)派生类继承基类除构造函数和析构函数以外的成员变量和函数;(2)私有成员变量可以继承到子类中,但不能访问。(3)基类成员的构造只能通过基类构造方法构造。(4)三种继承方式下,派生类

2016-11-15 16:08:29 879

原创 深入编译链接

一、准备知识1. 指令与数据指令是指挥计算机工作的命令,在计算机取指阶段从内存中读出的指令流,由控制器处理;数据是各种字母,数字,符号和图像等,在计算机执行阶段从内存中读出的数据流,由CPU运算器处理。2. 虚拟内存与虚拟地址空间       虚拟内存是操作系统为了解决内存耗尽问题而从硬盘上分出一部分空间充当内存使用。例如,执行某个较大程序时,需要占用较

2016-11-14 19:52:40 957

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除