1 Kobe51920

尚未进行身份认证

暂无相关简介

等级
TA的排名 6w+

《剑指offer》:线性表经典题目分析

1、逆置单链表typedef struct LinkNode{ int val; LinkNode*next;};//单链表逆置void Reverse(ListNode* pHead){ if(pHead == NULL || pHead->next == NULL) { return; } LinkNode*Recv = NULL; ...

2020-02-12 00:59:14

《剑指0ffer》:栈与队列经典题目分析

1.实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值)的时间复杂度为O(1)主要思路:1)建立两个栈_data与_mindata,其中_data作为数据栈,存放每一个入栈的数据;_mindata作为数据最小栈,存放数据栈中当前最小的数据;2)当元素data入栈时,将data入栈到_data数据栈中,并让data与_data的栈顶元素做比较,如果x小于等于_da...

2020-02-09 23:38:50

c++设计模式:状态模式

在软件开发过程中,应用程序中的有些对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态会发生改变,从而使得其行为也随之发生改变。如人的情绪有高兴的时候和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。状态模式的定义与特点:状态(State)模式的定义:对有状...

2020-02-09 18:50:38

c++设计模式:命令模式

前期提醒:在软件开发系统中,常常出现“方法的请求者”与“方法的实现者”之间存在紧密的耦合关系。这不利于软件功能的扩展与维护。例如,想对行为进行“撤销、重做、记录”等处理都很不方便,因此“如何将方法的请求者与方法的实现者解耦?”变得很重要,命令模式能很好地解决这个问题。在现实生活中,这样的例子也很多,例如,电视机遥控器(命令发送者)通过按钮(具体命令)来遥控电视机(命令接收者),还有计算机键盘...

2020-02-09 18:29:38

c++设计模式:建造者模式

在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 OPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。生活中这样的例子很多,如游戏中的不同角色,其性别、个性、能力、脸型、体...

2020-02-08 14:50:28

c++设计模式:策略模式

在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(...

2020-02-08 14:13:34

c++设计模式:代理模式

前期知识:代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于不同的场合,满足用户的不同需求。代理模式概述代理模式是一种应用很广泛的结构...

2020-02-08 01:09:47

c++设计模式:适配器模式

前期讲解:在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等。在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本...

2020-02-07 00:13:21

c++设计模式:Observer 观察者模式

前期讲解:观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间可以没有任何相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展。观察者模式的定义&特点:观察者模...

2020-02-06 22:15:02

c++设计模式:Factory 工厂模式详解(简单工厂、工厂方法、抽象工厂)

1.简单工厂模式模式的结构与实现该模式中包含的角色及其职责如下:工厂角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。抽象产品角色:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。具体产品角色:是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。缺点:对修改不...

2020-02-06 14:12:28

c++06:函数

1.函数基础通过调用运算符来执行函数。调用运算符是一对括号,是一个用逗号隔开的实参列表,用实参来初始化函数的形参,调用类型与函数类型一样。2.函数调用1.用实参初始化函数的形参2.将控制权转移给被调用函数3.局部对象1.局部变量:形参和函数体内部定义的变量2.函数体外被定义的对象存在于程序的整个执行过程中3.自动对象:只在块执行期间的对象,当块执行结束后,块中的自动对象变成未定...

2020-01-30 13:12:35

c++:智能指针shared_ptr

先前的文章我们讲过了智能指针的概念等一系列问题,下面我们直接来看智能指针1.带有引用计数的智能指针 (Shared_ptr)同时也是强智能指针所谓的引用计数,就是有多少个智能指针对象管理这个堆内存。引用计数的作用是做所有对象共享的。不可以写为普通的成员变量,要写成静态的成员变量我们用一个引用计数管理器来实现Shared_ptr智能指针:设计思路:将引用计数管理器设计...

2020-01-30 13:10:02

liunx:复习大纲(进程管理与调度)

八.进程管理与调度https://blog.csdn.net/Jochebed666/article/details/830492991)io密集型和处理器密集型进程根据任务所需要的cpu和io资源的量可以分为:CPU密集型任务: 主要是执行计算任务,响应时间很快,cpu一直在运行,这种任务cpu的利用率很高 IO密集型任务:主要是进行IO操作,执行IO操作的时间较长,这是cp...

2020-01-19 19:03:35

liunx:复习大纲(内核同步&磁盘调度&服务器端编程技术和框架&源码分析)

九.内核同步的概念及内核同步的方法https://blog.csdn.net/miao_9/article/details/53055739十.磁盘io调用程序使用的调度方法https://www.cnblogs.com/kongzhongqijing/articles/5786002.html十一.liunx服务器端编程技术和框架1)分布式与集群的区别https://ww...

2020-01-18 22:35:17

linux:复习大纲(内存)

七.关于内存部分扩展探讨1.逻辑地址 线性地址(虚拟地址)物理地址逻辑地址(Logical Address) 是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu...

2020-01-18 22:33:05

liunx:复习大纲(网络)

五.网络1.网络基本概念ip地址:IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务。端口号...

2020-01-18 14:55:53

linux:复习大纲(进程间的通信)

Linux平台应用开发--进程间通方式1.管道:1)有名管道与无名管道的区别:有名管道:任何进程之间无名管道:父子进程之间写入管道数据在内存存放 管道是一种半双工通信方式 内核实现方式关于管道更多请看我之前的博客:https://blog.csdn.net/Kobe51920/article/details/1032293202.信号量:1)信号量的概念...

2020-01-18 14:43:32

linux:19网络socket

1、网络中进程之间如何通信? 消息传递(管道、FIFO、消息队列) 同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量) 共享内存(匿名的和具名的) 远程过程调用(Solaris门和Sun RPC) 2、什么是Socket?socket一词的起源在组网领域的首次使用是在1970年2月12日发布的文献IETF RFC33中发现的,撰写者...

2020-01-18 14:39:45

linux:复习大纲(线程)

该文章仅作为自己复习使用,因该文章内容太多借鉴他人博客内容,实在不知道写成翻译还是装载好,所以就写成了原创,实在不知道怎么回事!!!Linux平台应用开发--线程1.线程概念:线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务2....

2020-01-16 22:23:41

liunx:复习大纲(进程)

该文章作为复习使用,其中有部分就直接使用了自己之前的博客或者他人博客,但都会表明来自何方!!!二.Linux平台应用开发基础--进程1.程序编译连接过程,及各阶段所完成的功能预编译主要是做一些代码文本的替换工作。(该替换是一个递归逐层展开的过程。)(1)将所有的#define删除,并展开所有的宏定义(2)处理所有的条件预编译指令,如:#if #ifdef #elif #el...

2020-01-16 17:12:02

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。