自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

生活不侥幸,缜密务实待人处事

理解别人的文化,本质上是在创造和丰富自己的文化。

  • 博客(58)
  • 资源 (6)
  • 收藏
  • 关注

原创 Python学习笔记——切片操作

#slice[start:stop:step]# 0 represent the left end of the sequence, -1 represents the right end of the sequence.mystring = "my string"#if the sign of the step is negative, then#the default valu

2012-02-25 21:45:07 643

原创 约瑟夫环

#include #define LOGI(format, ...){\ fprintf(stdout, format, __VA_ARGS__);\ fprintf(stdout, "\n");\ } /***@brief Calculate the label of the person who is lastly be

2012-02-17 18:05:06 588

原创 REFERENCEOBJECT

// Prevent copy construction and assignment for a class#define REFERENCEOBJECT(className) \private: \ className(const className& other); \ className& operator = (const className& other);class T

2012-02-02 13:05:23 584

原创 lua学习笔记之栈

-1|___|4-2|___|3 -3|___|2-4|___|1/*堆栈结构,从栈底看,从1开始(右边的数字);从栈顶看以-1开始(左边的数字)*//*栈: 基本操作栈中可存放任意类型的数据,lua_push*函数将指定类型的元素入栈,lua_is*判断栈顶元素的类型,lua_to*获取栈顶元素,lua_pop将栈顶元素退栈,lua_settop指定新的栈顶位置*/

2012-01-19 10:40:45 1348 1

原创 Lua学习笔记——Lua作为库嵌入到C中

/*C++程序接收用户输入的字符串,把该字符串作为Lua的一个chunk送到stack中编译执行。*/#include #include #include int main(int argc, char* argv[]){ char buff[256]; int error = 0; lua_State* L=lua_open(); if(0 == L){

2012-01-16 19:36:57 2557

原创 创建型设计模式小结

Prototype         |--结构:对象的基类包含一个Clone接口,所有派生类实现该接口以克隆自身         |--意图:创建复合对象         |--命名理解:复合对象由一些原型构件组合而成,原型构件通过Clone生成自己 Factory Method         |--命名理解:类中有某个方法,专用于创建对象 Abstract Fa

2012-01-05 08:52:01 669

原创 Lua学习笔记

XXX类型的语言         |--静态类型         |       |--说明:编译期数据类型是固定的语言,它要求你在使用变量之前声明它的数据类型。Java/C         |--动态类型         |       |--说明:执行期才去发现数据类型的语言。Python/VBScript         |--强类型         |

2012-01-04 16:14:43 758

原创 CMake 学习笔记

变量的定义有有两种情况,一种是显式的(使用set指令),另一种是隐式的,比如project指令,它会自动为你定义_BINARY_DIR和_SOURCE_DIR两个变量。变量引用通常情况下使用${变量名},在if等语句中,直接用变量名而不用${变量名}来取值CMake常用变量CMAKE_BINARY_DIRPROJECT_BINARY_DIR_BINARY_DIR

2011-12-27 17:46:37 1238

原创 JNI best practice

<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->就语法而言,JNI的API是C语言的,因而了解API就可以使用JNI了。JNI的意图是为消除JAVA、C之间的通信障碍,以便取长补短。Java是纯面向对象语言,除了基本数据类型外,其它的都是引用数据类型。引用数据类型往往是一个类,类中包含了域(field),

2011-12-24 12:32:21 796

原创 常见编译调试错误

1: overloads have no legal conversion for 'this' pointerconst 类型的成员函数改变了类内部的状态

2011-12-19 13:00:23 510

原创 经常记不住opengl函数参数的功能,在这里记录下方便查询

glVertexPointer(); 第一个参数表示坐标的维数,可以是3维或者2维的。glDrawArrays(); 最后一个参数表示顶点的数目。线型glLineStipple(1, 0xF0F0);  // 0xF0F0 的二进制形式为1111 0000 1111 0000 所以 “先空4个像素,再绘制4个像素,再空四个像素,又绘制四个像素”,不断重复。glEnabl

2011-12-14 10:51:02 776

原创 Linux 下查看静态库.a的内部信息

在链接一个静态库(xxx.a)的时候出现undefined reference error的错误信息。一直不知道怎么搞定,因为我确信已经把所需要的.o编译进来了。后来使用nm xxx.a命令,查看.a的内部信息发现,所需要的.o确实已经编译了,但在编译的时候被我用宏注释掉了,实在是悲惨唉。撰写程序时多使用合适的工具非常有用,我欠缺这方面的知识,以后要补上了。

2011-12-13 11:08:25 4844

原创 SDLframework实现之消息循环的封装

最近一段时间在研究OPENGL,OPENGL本身并不提供窗口系统,在其官网上推荐采用SDL提供窗口和事件循环机制。但是SDL是纯C面向过程的,用它写的代码逻辑容易混乱,于是就萌生了对SDL做部分封装的想法。        对于学习OPENGL而言,需要SDL提供的功能就相对比较简单。考虑一个最简单的例子:在屏幕上绘制一个三角形,并且能够通过上下左右键在屏幕中移动三角形。从这个简单的例子中可

2011-12-09 23:06:45 1321

原创 gcc-cross 交叉编译

几个注意点:1. 设置bin目录2. 禁用/usr/include等默认的C和C++包含路径;在enviroment中undefine C_INCLUDE CPLUSPLUS_INCLUDE环境变量3. 添加自己的路径

2011-11-28 20:09:54 1247

原创 对临界区对象的一点感悟

临界区对象1. 多线程中,在所有使用(同一个)临界区对象的地方,同一时刻只能有一个地方被执行。2. 程序中使用多个临界区对象的用途。举个例子,比如有两个需要保护对象分别为电话和自动柜员机(ATM机),在对这两个对象进行访问的时候,我们都使用临界区对象进行保护,以便在同一时刻只有一个地方可以访问电话(或者自动柜员机)。当然,访问电话和自动柜员机并不会矛盾,我们可以便访问自动柜员机的同

2011-05-08 08:07:00 1875

原创 去除WORD 中文字底边的波浪线

在WORD窗口中,最下面的状态栏上,中间位置,有一本翻开的书本的图标,右键点击它,将“隐藏拼写错误”前的勾去掉即可,红色波浪线就不显示了。去掉“隐藏语法错误”前的勾,就能不显示绿色的波浪线!

2010-11-30 09:53:00 1566

转载 苟富贵勿相忘

毕业临近,学生们忙着写留言,突然就想起一句最著名的留言:苟富贵,勿相忘。  随着年龄的增长,渐渐明白了,这是一个多么真诚的期望,这又是多么天真的一句话。  富贵了的人们,当然也有不相忘朋友,更多的朋友也许是那些跟自己类似的人。时间的距离,空间的距离,地位的距离,经济的距离,生活信条,消费理念的差异,隔开的不仅仅是身体,更是内心与之亲近的念头。就像少年时候的的闰土和鲁迅,小时候,可以有亲密无

2010-10-18 21:54:00 22431

原创 linux文件系统结构图.jpg

2010-10-17 09:07:00 1834

原创 堆排序算法

1.概述  1991年计算机先驱将获得者、斯坦福大学计算机科学系教授Robert W.Floyd和J. Williams在1964年共同发明了著名的Heap Sort算法。  堆排血实质上就是将要进行排序的序列Arr[1..n]看做是一棵完全二叉树的存储结构,堆则是满足如下性质的完全二叉树:树中任一非  叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。(如果按照数组

2010-10-15 01:17:00 1190

原创 网新恒天笔试小结

1.  输出以下代码的输出结果#include #define N 5int* func(int* x, int* y){ static int t = 0; if (*x < *y) { t += *x; printf("%d/n", t); return x; } else { t += *y; printf("%d/n",

2010-10-14 10:28:00 3202

转载 Is there any difference between List x; and List x();?

A big difference! Suppose that List is the name of some class. Then function f() declares a localList object calledx:   void f() {   List x;     // Local object named x (of class List)

2010-07-29 16:42:00 943

原创 联合灰度直方图

互信息、联合灰度直方图

2010-06-24 12:04:00 8497

原创 static的作用

C语言中,Static最主要的作用是隐藏,其次因为static的存储在静态内存区,所以具有持久性和默认值为0的特点。1. Static的隐藏性质,可在不同文件中定义同名函数和同名变量,而不必担心命名冲突。2. 静态区中一般存储两类变量:全局变量和静态变量。存储在静态区的变量会在程序刚开始运行时就被初始化为0 C++中Static的作用静态成员函数和静态数据成员一样,它们都属于类

2010-06-23 16:06:00 560

原创 内联函数

内联函数的调用是在程序编译时,编译器将这些函数直接在调用处展开,使这些函数称为调用函数的一部分,不需要函数调用时的现场保护和现场恢复过程,因此可以提高程序的运行速度。使用内联函数时,应注意:内联函数的函数体内,不能含有复杂的结构控制语句,如switch,for,if等。如果内联函数中有这些语句,则编译器将该函数看做普通函数,会产生调用代码。递归函数是不能用来做内联函数的。一般,内联函数只适

2010-05-22 11:30:00 736

原创 快速排序的非递归实现

将递归程序转换为非递归程序通常是件非常头痛的事情。但是,只要遵循如下几个原则,这种转换还是非常容易理解的。首先,这种转换大都是建立在队列(或堆栈)和回溯思想上的。其次,为更形象地描述非递归的实现过程,可以通过简单得绘制树结构来实现。#ifndef __QUICKSORT_H__#define __QUICKSORT_H__// 快速排序法,非递归实现/*************

2010-05-14 13:58:00 2599

原创 WORD 2003 设置文字的上下标

设置上标的快捷键:ctrl + shift + =设置下标的快捷键 ctrl + = 重复一次,表示撤销。

2010-05-11 14:16:00 885

转载 word2003 中调出“公式编辑器”到工具栏中

第一步:点击“视图”菜单下的子菜单“工具栏”,在这个子菜单中,点击“自定义”;第二步:“自定义”对话框弹出后,点击“重排命令”;第三步:“重排命令”对话框出现后,在“请选择要重排的菜单或工具栏”下面,选择“菜单栏”,然后在右边的下拉菜单中选择“插入”,  最后再点击“添加”命令; 第四步:在“类别”一栏中选择“插入”,在“命令”一栏中选择“ 公式编辑器”,然后确定,这时我们将会看到

2010-05-10 13:59:00 8026 2

转载 C plus plus 的多态性

多态之目的以相同的指令调用不同的函数,这种性质称为Polymorphism,意思是”the ability to assume many forms”(多态)。多态的目的,就是要让处理“基类之对象”的程序代码,能够完全无障碍地继承适当处理“派生类之对象”。 前期绑定与后期绑定(静态绑定与动态绑定)前期绑定,就是对于C/C++的非虚函数(non-virtual),在编译期

2010-05-08 13:44:00 787

转载 MEX文件

Section 8: The ingredients of a MEX-fileAll MEX-files must include four things:#include mex.h (C/C++ MEX-files only) mexFunction gateway in C/C++ (or SUBROUTINE MEXFUNCTION in Fortran)The mxAr

2010-04-23 22:36:00 3435

转载 齐次坐标系

一直对齐次坐标这个概念的理解不够彻底,只见大部分的书中说道“齐次坐标在仿射变换中非常的方便”,然后就没有了后文,今天在一个叫做“三百年重生”的博客上看到一篇关于透视投影变换的探讨的文章,其中有对齐次坐标有非常精辟的说明,特别是针对这样一句话进行了有力的证明:“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. H

2010-04-23 12:06:00 4196 4

原创 Huffman Tree

在电脑资料处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。http://zh.wikipedia.org/zh-cn/%E9%9C%8D%E5%A4%AB%E6%9B%BC%

2010-04-16 09:59:00 691

原创 友元类

类A想访问类B的成员,则需要在类B中将类A声明为友元#include using namespace std;/*类A想访问类B的成员,则需要在类B中将类A声明为友元*/class B{public: friend class A; // 类A可以访问类B的私有成员 B(int b){m_b = b;}; B(){m_b = 0;} ~B(){};

2010-04-15 17:34:00 510

原创 二叉树中节点的最大距离(递归,动态规划)

相距最远的两个节点,如果不经过当前树的根节点,也必定经过以当前树中某节点为根的树而连接在一起。非正式地讲,任何一条路径都是经过“根节点”的。所以可以用动态规划的方法,自底向上为每个节点分别计算其左子树到“根节点”的最大距离,右子树到“根节点”的最大距离。然后,比较经过当前“根节点”的路径距离与当前的最远距离。树结构代码:struct LTNode{ int nMaxLeft;

2010-04-13 10:49:00 970

原创 二叉树的按层访问(非递归)

二叉树按层遍历(利用队列非递归实现)1) 访问第k层的节点,可以通过访问第k-1层节点的左右孩子来实现。2) 从根节点开始访问二叉树,在访问第k层节点的时候,保存它的左右孩子节点。所以可以通过队列来实现(FIFO)。为了为每层输出换行符,在队列中放入0作为标记。如果节点i是第k层的最后一个节点,那么i的右孩子(如果有的话)就是下一层的最后一个节点。/* pseudo-code

2010-04-13 09:16:00 875

原创 二叉树重构

问题描述:根据前序遍历结果和中序遍历结果,重构二叉树。1) 前序遍历结果的特点:假设当前的遍历结果是完整的树节点集合。那么第一个节点就是该树的根节点,并且其后面的节点集合中,前半部分是其左子树的节点集合,后半部分是其右子树的节点集合。2) 中序遍历结果的特点:如果当前节点是当前树的根节点,那么该节点左边的节点集合是树的左子树节点的集合,该节点右边的节点集合是树的右子树节点集合。

2010-04-13 09:11:00 2564

原创 二叉树非递归遍历

二叉树非递归遍历的几个要点:1) 不管前序、中序还是后序,它们的遍历路线(或者说是回溯路线,先沿左边一直走到尽头,然后回溯到某节点,并跳转到该节点的右孩子(如果有的话),然后又沿着这个有孩子的左边一直走到尽头)都是一样的。2) 明确每次回溯的目的。比如,前序回溯的目的是为了访问右子树;中序回溯的目的是为了先访问根节点,后访问右子树;后序回溯的目的是为了先访问右子树,后访问根节点。

2010-04-11 14:43:00 882

原创 n皇后问题-回溯法

用树可以形象直观地描述回溯法。《算法设计技巧与分析》#ifndef __QUEENS_H__#define __QUEENS_H__class Queens{public: Queens(int nQueens); ~Queens(); bool Setout(); // 摆放皇后 inline int* GetAnswer(){return m_pos

2010-04-10 15:46:00 802

原创 堆排序

堆排序,建立在堆这种结构上。一般的堆可以建立在数组上,但也可以用链表结构来表示。有序堆满足,每个节点的键值要比它所有孩子的键值都大。#include using namespace std;typedef double Elem;/* 自顶向下堆化(大根堆)fixDown(Elem* eArray, int k, int N)问题功能描述:假设原来的堆是有序的,只是位置

2010-04-10 12:20:00 571

原创 指向数组的指针

本网文通过实例详尽介绍了指向数组的指针的应用。 #include using namespace std;typedef double Elem;int main(){ Elem (*ptr1)[3]; // ptr是一个指针,指向一个数组,该数组有3个Elem类型的元素 Elem* (*ptr2)[3]; // ptr是一个指针,指向一个数组,该数组有3个Elem

2010-04-08 18:07:00 470

原创 视频播放控制

《学习openCV》中文版/* 小发现:所有的类都以大写字母开头,函数都以小写字母开头*/#include "cv.h"#include "highgui.h"int gSliderPosition = 0; // 滚动条位置,g代表全局变量int gNbFrames = 0; // 当前的帧数CvCapture* gCapture = NULL; // CvCap

2010-04-05 19:03:00 571

XviDopenCV 读取视频文件的解码器

openCV 读取视频文件的解码器Xvi,用了这个解码器后就能够读取视频文件和摄像头图片了

2011-04-10

VC6.0显示行号的插件

VC显示行号插件说明 --------------------------------------- 1. 如果你的VC安装在C盘,请拷贝文件VC6LineNumberAddin.dll到如下目录: C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns 2. 注册 双击VC6LineNumberAddin.reg进行注册。 3. 启用 打开vc6,菜单栏:Tools -> customize -> Add-ins and Macro Files 选中VC6LineNumber Developer Studio Add-in

2010-04-23

gibbs 采样生成合成图像

gibbs 采样生成合成图像,一般用于图像分割中。可以任意指定要生成图像的大小,以及类别数目。

2010-01-04

一个关于图的C++类

一个关于图的C++类,我研究了老半天都没有结果。放在这里希望有兴趣的一起来研究研究。

2009-12-13

VC_CSDN编程经验总结

VC编程经验总结,非常实用。CHM 文档的内容均为 CSDN 众网友共同收集而来,由网友们于 2004 年 3 月 7 日在 www.csdn.net 网站 VC/MFC 版的非技术类论坛上正式提出整理工作的倡议,经王国凡同志(sgnaw 李逍遥)整理而成,以供大家工作学习参考之用。

2009-05-11

Support Vector Machine for Classification and Regression.pdf

一篇svm比较好的论文,并且在论文中提供了svm的matlab工具包下载地址。而整片论文的实验的平台就是这个软件包。

2009-04-25

空空如也

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

TA关注的人

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