自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 智能指针的模拟实现

1.引入int main(){ int *p = new int; //裸指针 delete p; return 0;}在上面的代码中定义了一个裸指针p,需要我们手动释放。如果我们一不小心忘记释放这个指针或者在释放这个指针之前,发生一些异常,会造成严重的后果(内存泄露)。而智能指针也致力于解决这种问题,使程序员专注于指针的使用而把内存管理交给智能指针。 普通指针也容

2017-07-24 16:25:51 1745

原创 每天几道笔(面)试题

分析下面代码有什么问题? (1)void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );}解答:st1r长度为11个字节,需要11个字节的大小才能放下,而string只有10个字节的大小。 (2)void test2(){ char string[10]

2017-07-31 00:05:18 408

原创 常用排序的实现及比较

排序的稳定性:假设在待排序的序列中存在多个相同关键字的记录,经过排序,这些关键字的位置保持不变,则称这个排序算法是稳定的,否则是不稳定的。 1. 选择排序(不稳定) 选择排序是一种直观的排序算法,每次找到最大的或者最小的数与,存放在序列的起始元素,知道所有的元素都排序结束。选择排序是不稳定的,假设5,5,3进行排序,3比第一个5小交换位置,导致第一个5摞到第二个5后面,所以选择排序是不稳定的排序

2017-07-30 19:01:15 309

原创 TCP的拥塞控制

目的 拥塞控制:当一个网络中数据一次性发太多时,为了避免由于数据太多而造成网络链路或者路由器过载。解决的方法 慢启动、拥塞避免 快速重传、快速恢复 (1)慢启动 首先先给发送方设置一个“拥塞窗口”的变量,这个变量和接收端的接受窗口共同决定了发送者的发送窗口。 为了避免一次将所有数据都注入到网络中,造成网络拥塞。所以进行试探性的发送数据,先发一个字节的数据,收到确认之后,每次都以2^n发

2017-07-19 14:55:33 425

原创 c++设计模式—观察者模式

Observer模式(观察者模式)应该可以说是应用最多、影响最广的模式之一。因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。在 MFC 中, Doc/View(文档视图结构)提供了实现 MVC 的框架结构。在 Java 阵容中, Struts 则提供和 MFC 中 Doc/Vi

2017-07-13 23:43:27 413

原创 c++设计模式之单例模式

单例模式概念 单例模式事比较常用的设计模式之一。一般情况下,我们建立的一些类是属于工具性质的,基本不用存储太多的跟自身有关的数据,在这种情况下,每次都去new一个对象,即增加了开销,也使得代码更加臃肿。其实,我们只需要一个实例对象就可以。如果采用全局或者静态变量的方式,会影响封装性,难以保证别的代码不会对全局变量造成影响,而且这样的代码显的很不优雅。 使用全局对象能够保证方便地访问实例,但是不能

2017-07-13 17:26:19 393

原创 数组和指针的区别,数组和引用的区别

数组和指针的区别 (1)定义 数组是一个符号,不是变量,因而没有自己对应的存储空间。但是,指针是一个变量,里面存储的内容是另外一个变量的地址,因为是变量所以指针有自己的内存空间,只不过里面存储的内容比较特殊。 (2)区别 a.对于声明和定义,指针和数组是不相同的,定义为数组,则声明也应该是数组,不可混淆 b.当作下标操作符时,指针和数组是等价的。a[i]会被编译器翻译成*(a+i).

2017-07-05 23:47:29 631

原创 进程和线程的区别

概念 进程:正在运行中的程序。 线程:进程中的一条执行路径。 2.区别 (1)通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。 (2)线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文

2017-07-04 20:50:59 334

原创 单例模式(c++实现)

什么叫单例模式? 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 通过单例模式, 可以做到: (1)确保一个类只有一个实例被

2017-07-02 23:46:24 416

原创 带头单链表的实现(嵌套类的实现)

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。class Link{public: Link() {

2017-07-02 22:46:53 1116

空空如也

空空如也

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

TA关注的人

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