自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

crazy_programmer_p的专栏

要做菜鸟中的战斗机

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

翻译 C++ 虚函数

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的

2014-09-19 17:01:02 733

转载 FIFO 读写操作

《Linux程序设计(第3版)》对于Linux命名管道的读写规则详解的不够详细和清楚,查了些资料,在此总结一下: 1.从FIFO中读取数据:约定:如果一个进程为了从FIFO中读取数据而阻塞打开了FIFO,那么称该进程内的读操作为设置了阻塞标志的读操作。(1)如果有进程写打开FIFO,且当前FIFO为空,则对于设置了阻塞标志的读操作来说,将一直阻塞下去,直到有数据可以读时才继续执行;

2014-09-15 23:57:04 8202

转载 Linux access 函数

Linux access函数功能描述: 检查调用进程是否可以对指定的文件执行某种操作。Linux access函数用法: #include #include int access(const char *pathname, int mode);Linux access函数参数: pathname: 需要测试的文件路径名。 mode: 需要测试的操作模式,可能值是一个

2014-09-15 23:12:30 841

转载 僵尸进程与孤儿进程

1 .基本概念我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。  孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进

2014-09-13 21:18:58 683

转载 operator new

本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。一 new运算符和operator new():     new:指我们在C++里通常用到的运算符,比如A* a = new A;  对于new来说,有new和::new之分,前者位于std     

2014-09-11 16:31:54 821

转载 C++ 关键字typeid 运行时类型检查

在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。    dynam

2014-09-11 16:03:41 1713

转载 Linux 程序设计 文件锁

功能描述:根据文件描述词来操作文件的特性。#include #include  int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]fcntl()针对(文件)描述符提供控制。参数fd

2014-09-10 21:31:31 698

转载 高斯混合模型

本文就高斯混合模型(GMM,Gaussian Mixture Model)参数如何确立这个问题,详细讲解期望最大化(EM,Expectation Maximization)算法的实施过程。单高斯分布模型GSM多维变量X服从高斯分布时,它的概率密度函数PDF为:x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通常用样本方差来代替。很容易判断一个

2014-09-09 15:04:19 749

转载 gcc 头文件查找路径

如果从纯粹的text文件来说,#include的作用就是搜索它后面指示的文件,并把这个文件的内容加到当前的文件中。一般我们编程时,都是包含一些与.h为后缀的头文件,但是它可以包含任何后缀的任何形式的text文件的,而不仅仅是.h为后缀的头文件。#include有两种形式,例如如下:#include #include "userhead.h"用尖括号表示的是包含系统的头文件,用双引号

2014-09-04 20:55:31 3316

转载 C++ 重载 覆盖和隐藏

#include "stdafx.h"  #include   class CB  {  public:     void f(int)     {        cout << "CB::f(int)" << endl;     }  };  class CD : public CB  {  public:     void f(int,int)     {

2014-09-03 21:42:36 622

转载 为什么静态成员函数不能是const

static在c++中的第五种含义:用static修饰不访问非静态数据成员的类成员函数。这意味着一个静态成员函数只能访问它的参数、类的静态数据成员和全局变量。   不能用const的原因: 这是C++的规则,const修饰符用于表示函数不能修改成员变量的值,该函数必须是含有this指针的类成员函数,函数调用方式为thiscall,而类中的static函数本质上是全局函数,调用规约是

2014-08-28 21:24:55 6114

转载 各种特殊函数为什么不能是虚函数

> 内联函数内联函数是在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾,不能定义内联函数为虚函数。2> 构造函数构造函数用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将构造函数定义为虚函数。3> 静态成员函数静态成员函数属于一个类而非某一对象,没有this指针,它无法进行对象的判别。

2014-08-28 21:13:21 581

转载 虚函数初始化顺序

classBed : virtualpublic furniture{public:    Bed(int nWeight ):furniture(nWeight)    {        cout <<"床的构造"     }    voidsleep()    {     }}; //构造顺序,先是虚基类//再是非虚基

2014-08-28 20:37:07 2366

转载 C++对象创建过程

初看到这个题目,你可能会有些疑惑:C++类对象的创建还有什么好说的,不就是调用构造函数么?实际上情况并不是想象中的那么简单,大量的细节被隐藏或者被忽略了,而这些细节又是解决一些其他问题的关键,所以我们很有必要深入到这块"神秘"的区域,去探索鲜为人知的秘密。分配空间(Allocation)创建C++类对象的第一步就是为其分配内存空间。对于全局对象,静态对象以及分配在栈区域内的对象,对它们的内

2014-08-28 20:16:49 1271

转载 构造函数不能是虚函数的原因

1,从存储空间角度    虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度        虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数

2014-08-28 20:06:04 528

转载 C 语言的可变参数类型 stdarg

va_list/va_start/va_arg/va_end这几个宏,都是用于函数的可变参数的。

2014-08-24 23:31:04 888

转载 malloc (0)

下面的代码片段输出是什么?为什么?

2014-08-21 22:59:42 595

转载 字长 寻址

我们通常说的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。通用寄存器:  通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特殊功能。通用寄存器的长度取决于机

2014-08-21 21:57:12 1858

转载 操作系统内存管理之内部碎片 与外部碎片

“碎片的内存”描述一个系统中所有不可用的空闲内存。这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用。这一问题通常都会发生,原因在于空闲内存以小而不连续方式出现在不同的位置。由于分 配方法决定内存碎片是否是一个问题,因此内存分配器在保证空闲资源可用性方面扮演着重要的角色。internal fragmentation:when memory allocated

2014-08-20 12:51:09 1273

转载 C++ hash_map

为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华山派掌门人,人称君子剑 张三丰-武当掌门人,太极拳创始人 东方不败-第一高手,葵花宝典

2014-08-19 18:12:12 453

转载 暴雪公司字符串散列函数

暴雪公司有个经典的字符串的hash公式 先提一个简单的问题,假如有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做? 有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止,我想只要学过程序设计的人都能把这样一个程序作出来,但要是有程序员把这样的程序交给用户,我只能用无语来评价,或许它真的能工作,但...也只能如此了

2014-08-18 21:58:52 864

转载 中断 陷阱 软中断

中断即外中断,指来自处理机和内存外部的中断,包括 I/O 设备发出的 I/O中断、外部信号中断、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。陷阱即内中断,主要指在处理机和内存内部产生的中断。它包括程序运算引起的各种错误。软中断是通信进程之间用来模拟硬中断的一种信号通信方式。 中断和陷阱的主要区别: 1 、陷阱通常由处理机正在执行的现行指令引起,而中断则是由与

2014-08-16 21:20:44 827

转载 序列最小最优化算法 SMO

SMO优化算法(Sequential minimal optimization)SMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。关于SMO最好的资料就是他本人写的《Sequential Minimal Optimization A Fast Algorithm for Train

2014-08-14 09:29:03 4069

转载 支持向量机解决多类分类问题

从 SVM的那几张图可以看出来,SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。而现实中要解决的问题,往往是多类的问题(少部分例外,例如垃圾邮件过滤,就只需要确定“是”还是“不是”垃圾邮件),比如文本分类,比如数字识别。如何由两类分类器得到多类分类器,就是一个值得研究的问题。还以文本分类为例,现成的方法有很多,其中一种一劳永逸的方法,就是真的一次性考虑所有样本,并求解一个多目标

2014-08-14 09:24:27 15839

转载 支持向量机学习3

之前一直在讨论的线性分类器,器如其名,只能对线性可分的样本做处理。如果提供的样本线性不可分,结果很简单,线性分类器的求解程序会无限循环,永远也解不出来。这必然使得它的适用范围大大缩小,而它的很多优点我们实在不原意放弃,怎么办呢?是否有某种方法,让线性不可分的数据变得线性可分呢?有!其思想说来也简单,来用一个二维平面中的分类问题作例子,你一看就会明白。事先声明,下面这个例子是网络早就有的,我一时

2014-08-14 09:23:05 412

转载 支持向量机学习2

上节说到我们有了一个线性分类函数,也有了判断解优劣的标准——即有了优化的目标,这个目标就是最大化几何间隔,但是看过一些关于SVM的论文的人一定记得什么优化的目标是要最小化||w||这样的说法,这是怎么回事呢?回头再看看我们对间隔和几何间隔的定义:间隔:δ=y(wx+b)=|g(x)| 几何间隔:  可以看出δ=||w||δ几何。注意到几何间隔与||w||是成反比的,因此最大化几何间

2014-08-14 09:20:19 462

转载 支持向量机 学习1

(一)SVM的背景简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accu

2014-08-14 09:18:45 725

原创 异常安全的C++类

题目:类CMyString的声明如下:class CMyString{public:      CMyString(char* pData = NULL);      CMyString(const CMyString& str);      ~CMyString(void);      CMyString& operator = (const CMyString& s

2014-08-12 17:29:08 757

转载 C++ 单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。       单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做

2014-08-12 17:06:14 363

转载 支持向量机 SVM 理解 转自JULY

下面的这边博文转自 JULY 这个

2014-08-12 11:32:39 1674

转载 IPV4和IPV6详细对比

IPv4与IPv6头部的对比我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。头部是为了实现IP通信必须的附加信息,数据是IP通信所要传送的信息。 黄色区域 (同名区域)我们看到,三个黄色区域跨越了IPv4和IPv6。Version(4位)用来表明IP协议版本,是IPv4还是IPv6(IPv4, Version=0100;

2014-08-11 20:38:38 1317

原创 算法 与 数据结构

1.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树  10     / \    5 12     / \     4 7则打印出两条路径:10, 12和10, 5, 7。二元树节点的数据结构定义为:

2014-08-11 16:03:25 505

原创 算法与数据结构面试题

1:将二叉查找树转化为排序的双向链表

2014-08-11 14:42:49 966

转载 支持向量机 核函数

以下是几种常用的核函数表示:线性核(Linear Kernel)多项式核(Polynomial Kernel)径向基核函数(Radial Basis Function)也叫高斯核(Gaussian Kernel),因为可以看成如下核函数的领一个种形式:径向基函数是指取值仅仅依赖于特定点距离的实值函数,也就是。任意一个满足特性的函数 Φ都叫做径向量函数

2014-08-11 12:30:31 1254

转载 梯度下降法 求解回归问题

回归与梯度下降:回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等,这个将在后面去讲。用一个很简单的例子来说明回归,这个例子来自很多的地方,也在很多的open source的软件中看到,比如说weka。大概就是,做

2014-08-09 12:34:34 649

转载 HTTP 协议详解2

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

2014-08-08 21:05:22 463

转载 HTTP 协议详解1

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我在TCP流通信中说明了,TCP协议实现了数据流的传输。然而,人们更加习惯以文件为单位传输资源,比如文本文件,图像文件,超文本文档(hypertext document)。*** 超文本文档中包含有超链接,指向其他的资源。超文本文档是万维网(World Wide Web

2014-08-08 20:52:51 482

转载 FTP 与 TFTP 的比较

FTP通信过程  服务器首先运行一个本地主服务进程,当客户端用户输入open和ftp命令后,客户指定一个远程计算机,建立一个客户控制进程,本地应用成为一个FTP客户,建立了自己的半相关。  然后,客户用TCP建立与指定FTP服务器之间的控制连接。客户与服务器在控制连接进行通信时使用FTP协议。  服务器接收到客户连接请求后,开启一个服务器控制进程,该进程与客户控制进程建立起控制连接,即

2014-08-08 18:52:30 767

转载 如何学习python

大家都知道Python语言是一种新兴的编程语言。1989年,Python就由Guido van Rossum发明。Python一直发展态势很好。      原因有几点:1、跨平台性好。Linux、Windows、MacOS、塞班……。2、快速易学。3、模块齐全。      Python本身是一种面向对象的脚本语言。功能涉及到应用程序开发、网络编程、网站设计、图形界面编程等等,基本囊括众多应

2014-08-08 00:04:54 1530

转载 ICMP 协议详解

ICMP协议ICMP(Internet Control Message Protocol)是介于网络层和传输层的协议。它的主要功能是传输网络诊断信息。   ICMP传输的信息可以分为两类,一类是错误(error)信息,这一类信息可用来诊断网络故障。我们已经知道,IP协议的工作方式是“Best Effort”,如果IP包没有被传送到目的地,或者IP包发生错误,IP协议本身不会

2014-08-07 21:41:00 1759

空空如也

空空如也

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

TA关注的人

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