自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(56)
  • 收藏
  • 关注

转载 TCP与UDP

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。UDP(User Datagram Protocol):用户数据报协议 1. UDP是无连接的,发送数据前不需要建立连接,减少了建立连接的开销和发送数据之前的时延; 2. UDP尽最大努力交付,即不保证可靠交付; 3. UDP是面向报文的,其协议...

2017-09-09 18:42:00 105

转载 动态库与静态库优缺点比较

动态库与静态库优缺点比较(2012-10-1815:31) 我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行后期的功能升级。例如我要在一段代码中多次交换两...

2017-09-08 13:24:00 106

转载 GDB常用调试命令以及多进程多线程调试

转载自:http://blog.csdn.net/freeelinux/article/details/53700266一:普通命令1.list命令list linenum 显示程序第linenum行周围的程序list function 显示函数名为function的函数的源程序list 显示当前行...

2017-09-07 22:25:00 147

转载 C++中的new/delete与operator new/operator delete

new operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。new operator(1)调用operator new分配足够的空间,并调用相关对象的构造函数(2)不可以被重载operator new(1)只分配所要求的空间,不调用相关对象的构造函数。当无法满足所要求分配的空间时,则...

2017-09-07 22:01:00 76

转载 引号的区别

在python中字符串可以用单引号括起来,也可以用双引号,这两种方式是等价的,而在PHP当中单引号和双引号的有些是不一样的,虽然表示的字符串,但是在php的单引号解析速度比双引号快,如果在Python用单号那么在字符串中就可以直接收写双引号了,反之亦然。这就是python为什么允许用两种方式的原因。在实际应用中,python 单引号和python 双引号用得比较多,有两种表示方式...

2017-09-04 17:54:00 86

转载 QT中加载动态链接库

一.添加第三方的头文件这个问题再简单不过了,不过我还是要说下。首先,添加头文件 #include "ControlCAN.h"然后,再将这个头文件放到工程的目录下,就OK了,非常的简单二.添加.lib文件首先,将.lib文件放到对应的工程目录下(当然,放到其他路径也可以)。 但是,仅仅做这一步是不行的,工程不会主动去包含这个.lib文件...

2017-09-04 17:45:00 67

转载 QString 转换为 char *

一、QString 转换为 char *  将 QString 转 char *,需要用到 QByteArray 类,QByteArray 类的说明详见 Qt 帮助文档。  因为 char * 最后都有一个'\0'作为结束符,而采用 QString::toLatin1() 时会在字符串后面加上'\0'。方法如下:  这样就完成了 QString 向 char * 的转化。经测试程...

2017-09-04 17:30:00 106

转载 C++虚继承初识

struct Employee { ... };struct Manager : Employee { ... };struct Worker : Employee { ... };struct MiddleManager : Manager, Worker { ... };如果经理类和工人类都继承自雇员类,很自然地,它们每个类都会从雇员类获得一份数据拷贝。如果不作特...

2017-09-04 16:37:00 90

转载 虚析构函数详解

1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。  下面转自网络:源地址http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html  a.第一段代码  #include<iostream>using namespace std;class ClxBa...

2017-09-04 16:14:00 78

转载 赋值兼容规则

注意:派生类是基类对象,反之不成立在一定条件下,不同类型的数据之间可以进行类型转换,如可以将整型数据赋给双精度型变量。在赋值之前,先把整型数据转换成双精度型数据,然后再把它赋给双精度型变量。这种不同类型数据之间的自动转换和赋值,称为赋值兼容。在基类和派生类对象之间也存有赋值兼容关系,基类和派生类对象之间的赋值兼容规则是指在需要基类对象的任何地方,都可以使用其子类对象来代...

2017-09-04 16:13:00 163

转载 C++中常量成员函数的含义

C++中常量成员函数的含义本文内容来源:《C++必知必会》使用常量成员函数可以改变对象的逻辑状态,虽然对象的物理状态没有发生改变。考虑如下代码,它定义了一个类X:class X{public: X():buffer_(0),isComputed_(false){} //... void setBuffer(){ ...

2017-09-04 14:51:00 200

转载 写时拷贝COW(copy-on-write)

写时拷贝技术是通过"引用计数"实现的,在分配空间的时候多分配4个字节,用来记录有多少个指针指向块空间,当有新的指针指向这块空间时,引用计数加一,当要释放这块空间时,引用计数减一(假装释放),直到引用计数减为0时才真的释放掉这块空间。当有的指针要改变这块空间的值时,再为这个指针分配自己的空间(注意这时引用计数的变化,旧的空间的引用计数减一,新分配的空间引用计数加一)。#in...

2017-09-04 12:48:00 115

转载 char* 、const char*和string之间的转换

1. const char* 和string 转换(1) const char*转换为 string,直接赋值即可。 EX: const char* tmp = "tsinghua". string s = tmp;(2) string转换为const char*,利用c_str() EX: string s = "tsinghua"; ...

2017-09-04 12:47:00 150

转载 C++模板特化与偏特化

C++模板说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板。我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样显然不利于程序的扩充和维护。C++模板就应运而生。C++的模板提供了对逻辑结构相同的数据对象通用行为的定义。这些模板运算对象的类型不是实际的数据类型,而是一种参数化的类型。C++中的模板分为类模板...

2017-09-04 12:47:00 123

转载 lamda表达式和尾置返回类型

基本lambda语法基本形式如下:[capture](parameters) mutable ->return-type{body} [capture]:叫做捕获说明符,表示一个lambda表达式的开始能够捕获上下文中的变量共lamda函数使用。 (parameters):参数列表,即这个匿名的lambda函数的参数,如果不需要传递参数,则可以省略括号; m...

2017-09-04 12:46:00 413

转载 编译期多态和运行时多态

前言 今日的C++不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出彩的那部分。在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态;在泛型编程中,多态基于template(模板)的具现化与函数的重载解析,这种多态在编译期进行,因此称为编译期多态或静态多态。在...

2017-09-04 12:44:00 132

转载 静态绑定和动态绑定

/**************************************************************************** 静态绑定:对象在声明时采用的类型,在编译期既已确定 动态类型:通常指一个指针或引用目前所指对象的类型,是在运行期决定的 静态绑定:绑定的是静态类型,所对应的函数或属性依赖于...

2017-09-04 12:43:00 65

转载 C++类型转换

目前为止,我们一直使用传统的类型转换符来进行简单对象的类型转换。例如,要把一个double类型的浮点型数字转换为int 的整型数字,我们是这样做的:int i;double d;i = (int) d;或者i = int (d);这样做对基本数据类型时没问题的,因为基本数据类型的转换已经有标准的定义。同样的操作也可以被在类或类的指针上,因此以下例子中的写法也是没...

2017-09-04 12:41:00 53

转载 三种继承方式和三种访问权限

也就是说子类只能访问父类的保护和公有成员,而对象只能访问公有成员。继承方式 1.三种继承方式不影响子类对父类的访问权限,子类对父类只看父类的访问控制权。 2.继承方式是为了控制子类(也称派生类)的调用方(也叫用户)对父类(也称基类)的访问权限。 3.public、protected、private三种继承方式,相当于把父类的public访...

2017-09-04 12:40:00 683

转载 大端对齐和小端对齐

大端模式:数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中,这种存储模式就类似把数据当做字符串顺序处理,例如:数据中两个字节按顺序为:FE 10 ,它表示的一个数就是0xFE10。换句话说:内存的低地址存放着数据高位; 小端模式:数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中,这种存储方式就是将地址的高低和数据的位结合起来,前面的例子按照小端模...

2017-09-04 12:40:00 906

转载 inline函数

C++中的inline用法1. 引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归...

2017-09-04 12:39:00 58

转载 可变长函数参数

一、基础部分1.1 什么是可变长参数可变长参数:顾名思义,就是函数的参数长度(数量)是可变的。比如 C 语言的 printf 系列的(格式化输入输出等)函数,都是参数可变的。下面是 printf 函数的声明:int printf ( const char * format, ... );可变参数函数声明方式都是类似的。1.2 如何实现C语言可变参数通过三...

2017-09-04 12:38:00 130

转载 哈夫曼树的原理和构建

1. 哈夫曼树的构造 给定N个权值分别为w1, w2, ..., Wn的节点。构造哈夫曼树的算法描述如下: 1)将这N个结点分别作为N棵树仅含一个结点的二叉树,构成森林F. 2)构造一个新节点,并从F中选取两棵根结点权值最小的树作为新节点的左、右子树,并且将新节点的权值置为左、右子树上根结点的权 值之和。...

2017-09-04 12:36:00 338

转载 各文件夹的作用

/boot 该目录默认下存放的是Linux的启动 文件和内核。 /initrd 它的英文含义是boot loader initialized RAM disk,就是由boot loader初始化的内存盘。在linux内核启动前,boot loader会将存储介质(一般是硬盘)中的initrd文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的i...

2017-09-04 11:49:00 109

转载 两种高效的事件处理模式(Proactor和Reactor)

典型的多线程服务器的线程模型 1.每个请求创建一个线程,使用阻塞式I/O操作 这是最简单的线程模型,1个线程处理1个连接的全部生命周期。该模型的优点在于:这个模型足够简单,它可以实现复杂的业务场景,同时,线程个数是可以远大于CPU个数的。然而,线程个数又不是可以无限增大的,为什么呢?因为线程什么时候执行是由操作系统内核调度算法决定的,调度算法并不会考虑某个线程可...

2017-09-04 11:44:00 96

转载 两种高效的并发模式(半同步/半异步和领导者/追随者)

一、并发编程与并发模式并发编程主要是为了让程序同时执行多个任务,并发编程对计算精密型没有优势,反而由于任务的切换使得效率变低。如果程序是IO精密型的,则由于IO操作远没有CPU的计算速度快,所以让程序阻塞于IO操作将浪费大量的CPU时间。如果程序有多个线程,则当前被IO操作阻塞的线程可主动放弃CPU,将执行权转给其它线程。(*IO精密型和cpu精密型可以参考此文:CPU-bound(计算...

2017-09-04 11:43:00 124

转载 简单说明webbench的安装和使用

简单说明webbench的安装和使用简介运行在linux上的一个性能测试工具官网地址:http://home.tiscali.cz/~cz210552/webbench.html如果不能打开的话,也可以直接到网盘下载:http://pan.baidu.com/share/link?shareid=3263861945&uk=46066916原理webbench首先fork出多...

2017-09-04 11:42:00 192

转载 CentOS 7防火墙

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤。1、关闭firewall:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动firewall-cmd --state #查看默认防火墙状态(关闭后显示no...

2017-09-04 11:41:00 45

转载 linux中inode的理解

一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 s...

2017-09-04 11:41:00 56

转载 unmask

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。如何计...

2017-09-04 11:40:00 201

转载 在linux下find和grep

在linux下面工作,有些命令能够大大提高效率。本文就向大家介绍find、grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们。本文结构如下:find命令find命令的一般形式find命令的常用选项及实例find与xargsgrep命令grep命令的一般形式grep正则表达式元字符集(基本集)1、find命令find命令是一个无处不在命令,是linux中最有用的命令之...

2017-09-04 11:39:00 76

转载 常用的字符串处理模型

#include <stdio.h>#include <string.h>#include <ctype.h>/*strstr_while字串模型*/int Search_count(char *p, char *str){ int ncount = 0; if (NULL == p || NULL == s...

2017-09-04 11:36:00 89

转载 代理模式(Proxy)

Proxy模式是构造型设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。 所谓代理,是指具有与代理元(被代理的对象)具有相同接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互过程中(交互前后),进行某些特别的处理。 角色及其职责Proxy Pattern结构图 1) S...

2017-09-04 11:34:00 94

转载 建造者模式(Builder)

Builder模式又称建造者模式或者生成器模式,是GoF提出的23种设计模式之一。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。 对象的创建:Builder模式是为对象的创建而设计的一种模式,创建的是一个复合对象,被创建的对象为一个具有复合属性的...

2017-09-04 11:32:00 69

转载 原型模式(Prototype)

Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具有原型一样的数据。 1) 由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。 2) 目标对象是原型对象的一个克隆。也就是说,通过Prototype模式创建的对象,不仅仅是与原型...

2017-09-04 11:29:00 81

转载 UML类图与类的关系详解

UML类图与类的关系详解在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregat...

2017-09-04 11:27:00 62

转载 设计模式基本原则

1.单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些...

2017-09-04 11:25:00 57

转载 tcp短连接和长连接

1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接的情况,client向ser...

2017-09-04 11:23:00 103

转载 HTTP协议

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(NextGenerationofHTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服务器...

2017-09-04 11:21:00 74

转载 有关字符串的练习

1. 取两个字符串的最大公共子串#include <iostream>#include <string>using namespace std;int main(){ int n = 0; string a, b, t; cin >> a >>b; for (int i=0; i<a.si...

2017-09-04 11:19:00 77

空空如也

空空如也

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

TA关注的人

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