自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Change

Talking is cheap, show me the code

  • 博客(105)
  • 资源 (14)
  • 问答 (1)
  • 收藏
  • 关注

原创 他山之石(链接集锦)

一:博客相关1 如何在github上面写博客?  1.1 http://beiyuu.com/github-pages/  1.2 http://www.cnblogs.com/P_Chou/archive/2013/01/20/build-github-blog-page-07.html  1.3 http://luchanghong.com/web/2012/09/01/sta

2014-07-18 21:06:21 888

原创 英语学习

为了成为一个高级码农,良好的英语写作,阅读,口语表达能力,三者缺一不可。抽点时间学习英语,将来一定受益终身。此文将列举常用的口语,不间断的更新。收获在于积累!Let's go***********************************************************************************************1 这是一个相当宽泛的问

2014-07-18 21:06:19 811

原创 前向声明可能引起的new崩溃

试试:a.h#pragma oncestruct RandomData;class A{public: A(); ~A(); bool Run();private: RandomData *m_pData;};a.cpp#include #include "a.h"struct RandomData{ int n;};A::A() :m_

2015-12-09 21:24:49 655

转载 boost条件变量和互斥使用例子

看看:#include #include #include const int BUF_SIZE = 10;const int ITERS = 100;boost::mutex io_mutex;class buffer{public: typedef boost::mutex::scoped_lock scoped_lock;

2015-08-24 20:49:10 688

转载 Linux文件特殊权限

SUID属性passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码。但是保存用户密码的/etc/shadow文件的权限是644, 也就是说只有文件的所有者root用户可以写入,那为什么其他用户也可以修改自己的密码呢?这是由于passwd这个可执行文件有SUID属性。[root@srv ~]# ll /etc/shadow-rw-r--r--. 1 root root 19

2015-07-07 12:31:31 793

原创 获取进程打开的文件句柄数

今天,碰到一个问题,如何获取进程打开的文件句柄数?搜素发现,一般需要调用命令lsof,然后用grep过滤出指定进程的结果,然后统计一下。完整的命令是:lsof -n|awk '{print $2}'|grep -e pid1 -e pid2|uniq -c 这个命令是结果是得到进程号为pid1和pid2的两个进程,各自打开的文件数。注意这里说的文件数,不是文件句柄数。这有区别吗?有。如果要

2015-06-29 20:09:39 7529

转载 Linux下RPM软件包的安装及卸载

转自:http://os.51cto.com/art/201001/177866.htm在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM

2015-06-28 16:37:08 655

转载 system和popen的用法和区别

转自:http://blog.csdn.net/shanzhizi/article/details/9054009linux下使用system需要谨慎,那么代替它的方法是什么呢?标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。popen函数还创建

2015-06-12 12:37:38 13335

原创 32位操作系统和64位操作系统的数据类型大小

如题,测试如下:代码:#include using namespace std;int main(int argc, char *argv[]){ cout << "char:" << sizeof(char) << endl; cout << "pointer:" << sizeof(char *) << endl; cout << "int:" << s

2015-06-11 19:54:50 723

转载 Makefile常用语法及例子

原文:http://www.cnblogs.com/tianyajuanke/archive/2013/02/16/2610276.html一个简单的例子:ab.out : a.o b.o g++ -o ab.out o/a.o o/b.oa.o : a.cpp g++ -c a.cpp -o o/a.ob.o : b.cpp g++

2015-05-14 20:24:33 572

转载 柔性数组

(我的旁白:什么是柔性数组?其实就是0长度数组,听起来高大上,玩起来还真是高大上啊,哈哈,以前没注意这些,今天用到,特意搜索了一下,学习了。)转载的:首先,我们要知道,0长度的数组在ISO C和C++的规格说明书中是不允许的。这也就是为什么在VC++2012下编译你会得到一个警告:“warning C4200: 使用了非标准扩展 : 结构/联合中的零大小数组”。那么为什么gcc

2015-05-09 12:05:24 591

转载 vim插件配置

vim_cheat_sheet_for_programmers.png常言道:工欲善其事,必先利其器 ,作为一个程序员,一个常用的工具就是编辑器,我选择一个能极大提高自己开发效率的编辑器vim(有些人可能选择emacs)。而vim编辑器方面具有以下几种特性:跨平台及统一环境无论是在windows还是在*nix,vim是一个很完美的跨平台文本编辑器,甚至可以直接在服务

2015-05-06 12:51:00 556

原创 进程锁实现-有名信号量

说明:Linux平台代码:/** @file processlock.h* @brief 进程锁实现* @date 2015-4-15* @note 用有名信号量实现*/#pragma once#include using std::string;class CProcessLock{public: CProcessLock();

2015-04-15 13:01:12 884

转载 gdb调试(1)-查看内存

用gdb查看内存格式: x /nfu 说明x 是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。

2015-04-11 12:48:00 703

原创 面试小记:关于数组和指针的一个笑话

面试题目:请问运行下面的程序会出现什么结果:char* getMemory(){ char a[] = "hello,world"; return a;}int main(int argc, char **argv){ char *str = NULL; str = getMemory(); printf("%s\n", str); return 0;}我乍一

2015-03-19 16:56:43 1071

转载 子网掩码,网络地址,广播地址

IP地址是一个由二进制的“0”和“1”组成的4字节共32位字符串。IP地址是由网络地址+主机地址组成那么可以得出网络位+主机位=32位如何知道一个IP地址里有多少个网络位和主机位呢,那么这个由子网掩码决定。举例一个iP地址10.158.79.53,子网掩码位255.255.248.0,这里面网络位,主机位是多少?主机数是多少?网络地址和广播地址是多少?说下我个人

2015-03-18 11:33:02 1646

转载 Android学习之路

欢迎转载,但请务必在明确位置注明出处!http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/QQ交流群:入群理由请正确填写我的GitHub账号* 383323653 (Android学习之路1群,已满)* 187252236 (Android学习之路2群,已满)* 416618703 (Android学习之路

2015-02-11 17:52:43 676 1

转载 Android SDK Download List

转自:http://www.cnblogs.com/wanqieddy/p/3545368.html#commentformfrom://http://sofire.iteye.com/blog/1961552Android SDK Download List!通过分析SDK Manager里要用到的repository文件,解析出各个组件的下载地址,方便使用迅雷下载等

2015-02-10 14:26:56 569

转载 在GitHub上管理项目

转自:http://www.cnblogs.com/mengdd/p/3447464.html新建repository  本地目录下,在命令行里新建一个代码仓库(repository)  里面只有一个README.md  命令如下:  touch README.md  git init  初始化repository  git add RE

2015-02-03 18:06:30 500

原创 程序员人生

1 专访安晓辉:Qt是最佳的跨平台解决方案 传送门

2014-12-15 21:12:41 539

转载 android的surfaceflinger原理讲解

转载自:http://blog.chinaunix.net/uid-20564848-id-96788.htmlSurfaceFlinger是Android multimedia的一个部分,在Android 的实现中它是一个service,提供系统 范围内的surface composer功能,它能够将各种应用 程序的2D、3D surface进行组合。在具体讲SurfaceFling

2014-12-15 15:33:09 709

转载 关于Linux静态库和动态库的分析

转自:1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代

2014-11-15 22:43:20 514

转载 用 C 语言编写一个简单的垃圾回收器

人们似乎认为编写垃圾回收机制是很难的,是一种只有少数智者和Hans Boehm(et al)才能理解的高深魔法。我认为编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc样例难度是相当的。在开始之前有一些重要的事情需要说明一下:第一,我们所写的代码是基于Linux Kernel的,注意是Linux Kernel而不是GNU/Linux。第二,我们的代码是32bit的。第三,请不

2014-09-24 09:10:07 569

原创 dos脚本示例1

@echo off::::::::::::: 1,先处理文本::::::::::set conv_list=list.txtset indir=ui:: 切换到脚本所在目录cd /d %~dp0if "%1"=="" echo "usage: %0 替换列表文件 所在目录 [新替换文件] [输出目录]" & goto endrunif "%2"=="" echo "us

2014-08-22 17:51:42 790

原创 说说内存对齐吧

说说内存对齐为什么要内存对齐?因为CPU为了提高指令提取效率,对数据的存放地址有要求。如果不对齐,会导致效率低下,甚至错误。如何对齐?既然CPU已经作了规范,剩下的事情就交给编译器了。对于程序员,可以告诉编译器按照怎么的方式去对齐。不同的编译器指令不一样:(1) windows的编译器cl  #pragma pack(n) //n表示按多少字节对齐  #pragma p

2014-08-20 15:51:39 656

转载 低通滤波器的c++实现

在电脑上翻到一段代码,实现低通滤波器。出处

2014-08-11 09:59:25 17343 3

原创 UTC时间转本地日期时间的实现

//gps日期和时间struct DATETIME{ hw_uint16 year; hw_uint8 month; hw_uint8 day; hw_uint8 hours; hw_uint8 minute; hw_uint8 seconds; hw_uint8 microsecond; DATETIME() { clear(); } hw_void clear

2014-07-25 15:45:07 956

原创 数组和指针

记录整理一些在阅读《征服C指针》过程中的感想。1 关于数组和数组指针char array1[2];       //定义一个数组,包含了2个char元素char (*array2)[2];  //定义一个数组指针,这个指针指向的数组是一个包含了2个元素的数组另外:(1)数组名称array其实代表了数组首元素的地址,即&array[0],而&array代表

2014-07-19 09:45:53 565

原创 排序算法2

前面讲了冒泡排序和插入排序,今天讲的排序算法是shell排序shell排序命名来自于Donald Shell,该算法被证明为有亚二次时间界。是插入排序的一种改进,舍弃了插入排序逐一比较的不足之处,而是设定一个增量,间隔比较。然后逐渐缩小这个增量,最终达到排序目的,所以shell排序也叫缩减增量排序。首先,需要设定一组增量序列,h1,h2,...hk。然后先从h1开始,以此增量为步长

2014-07-19 09:45:35 559

原创 bat批处理脚本编程之清理系统垃圾

@echo offecho 正在清除系统垃圾文件,请稍等......del /f /s /q %systemdrive%\*.tmpdel /f /s /q %systemdrive%\*._mpdel /f /s /q %systemdrive%\*.logdel /f /s /q %systemdrive%\*.giddel /f /s /q %systemdrive%

2014-07-19 09:43:42 665

原创 typedef声明数组及在二维数组申请中的应用

基础知识练习,随便写写,关于指针,数组,typedef的应用. #define MAXLINE 1024typedef char Pom[MAXLINE];int main(){ char *pTest[10] = {"abcd","defg"};//指针数组初始化 char MyArray[MAXLINE] = {"hello,world!"}; char

2014-07-19 09:42:38 846

原创 排序算法1

整理一下比较主流的几种排序算法,这篇介绍的排序算法有:1) 冒泡排序,2) 插入排序。一:冒泡排序这已经成为了教科书式的排序算法了。很容易实现,且对部分已经排好序的数据进行排序时,具有比较好的效率。它的最坏情形是O(N2)。算法思路:以从小到大排序为例,每次从数组最后一个元素开始,比较相邻的两个元素,如果array[j] 1 void BubbleSort(int arr

2014-07-19 09:42:35 587

原创 HTK代码中的log-add算法实现

在语音识别处理中,一般采用基于高斯混合模型的HMM框架。在模型的训练中(如htk的代码),涉及到大量的概率值计算,这些概率值往往是很小的浮点数。而且概率值相乘后会越变越小,计算起来会损失精度,为了保持准确度,统一将这些概率值进行log处理,再参与运算。也就是说,在代码中处理的概率是对数域的值,即:p1' = logp1p2' = logp2在对数域中,乘法和除法变换为:lo

2014-07-19 09:41:26 1121 1

转载 批处理setlocal与变量延迟

以下内容转自:http://www.hackbase.com/tech/2009-08-18/55046.html要想进阶,变量延迟是必过的一关!所以这一部分希望你能认真看。为了更好的说明问题,我们先引入一个例子。例1: @echo off set a=4 set a=5 & echo %a% pause结果:4解说:为什么是4而不是5呢?在echo之前明明已经

2014-07-19 09:40:39 1290

原创 三种数据队列的实现

1 /** 2 * 文件名称:dataqueue.h 3 * 摘 要:本文件实现了三种数据队列:简单队列,单队列类和双数据队列类。 4 1) 简单队列:使用List库,动态分配内存,使用临界区保证互斥 5 2)单队列:采用链表实现,一次性分配内存。减少频繁内存申请开销,同样采用临界区保存互斥。 6 3

2014-07-19 09:37:30 753

原创 排序算法3

前面介绍的冒泡排序,插入排序,shell排序都是基于两两元素比较,然后移动的排序算法,有着O(N2)的复杂度,今天讲三种比较牛的排序算法,可以将复杂度降低为O(n*lgn)。分别是:1) 堆排序。2)归并排序。3)快速排序。1、堆排序算法:利用二叉堆(binary heap)的数据结构形式,及其性质对数据进行排序。首先看下什么是二叉堆,wiki解释:二叉堆是一种特殊

2014-07-18 23:02:48 619

原创 排序算法4

今天讲两种比较诡异的排序算法,之所以诡异是因为这两种排序算法与之前介绍的几种不太一样(见排序算法前三篇)。之前的排序算法都是基于元素比较来得到的,它们中间,像堆排序,快排等都有着比较理想的时间复杂度下界O(nlgn)。那么有没有更快的排序算法?有!下面的这两种排序算法的最好时间复杂度是O(n)。是不是很诱惑?一起来看看。1)桶排序桶排序实际上是先定义m个单元,每个单元满足一定的条件

2014-07-18 23:00:51 629

原创 字符编码及文件读取的基础知识

这是以前写的一点笔记,把它转过来。1、二进制文件和文本文件首先看二段代码:生成一个二进制文件和一个文本文件。打开一个二进制文件:test.dat,写入整数1234,其对应的十六进制为04 D2。  FILE *pfile; int ntest = 1234; if(NULL == (pfile=fopen("test.dat","wb")))

2014-07-18 22:58:57 833

原创 BP神经网络算法推导

前言:自己动手推导了一下经典的前向反馈神经网络的算法公式,记录一下。由于暂时没有数据可以用作测试,程序没有实现并验证。以后找到比较好的数据,再进行实现。一:算法推导  神经网络通过模拟人的神经元活动,来构造分类器。它的基本组成单元称为”神经元”,离线情况下如果输入大于某值时,设定神经元处于兴奋状态,产生输出,否则不响应。而这个输入来自于所有其它的神经元。而神经元的响应函数有多种(需

2014-07-18 22:58:48 1820

原创 闭包

举个例子 perl: use strict;my $add_sub = add_function_generator();my $sum = &$add_sub(4,5);print $sum;sub add_function_generator{return sub{$_[0]+$_[1]};}

2014-07-18 22:57:18 499

c++ cookbook英文版(高清原版)

原版的c++ cookbook,对于想提高英语水平的码农来说,很好的学习资源。

2013-08-14

深入浅出visual c++串口编程

关于Windows下的串口编程说明,在其它地方下载的。71页的文档,介绍的很详细,不多说

2013-08-14

windows并发编程前3章高清电子书

chinapub的高清电子书,前面3章的试读部分,不是高清你砍我!

2013-06-27

数字转阿拉伯(perl实现)

有一个相同的资源,居然要10分,所以我免费上传一个

2013-06-27

精通MATLAB界面编程

看到另外一个朋友上传的相同的资源,要花7个积分,所以为了服务大众,我传个免费版。程序就不上传了,代码很少,自己敲。适合新手学习。

2013-06-03

Visual C_C++图形图像与游戏编程典型实例解析_源代码2

这是源代码的第二部分,还有第一部分,请查找!

2010-02-25

Visual C_C++图形图像与游戏编程典型实例解析_源代码

文件太大,这是第一部分,请查找《Visual C/C++图形图像与游戏编程典型实例解析》-源代码2.rar

2010-02-25

MATLAB图像处理函数

一些MATLAB用于处理图像的函数,文件格式为PDF

2010-02-25

matlab图像处理命令

常用的MATLAB图像处理命令,文件格式为PDF!

2010-02-25

常用的数学公式(Word文档)

做工程开发常常要用到的数学公式,罗列一下,可能会用的着哦

2009-09-19

DirectX9中文帮助手册(pdf)

分享一下这个,可能会用到的朋友,请支持一下~~~~

2009-08-18

vb编写的一个文件传输程序

一点小程序,不是自己编的,拿出来与大家共享,好多年不用vb了,呵呵

2009-08-13

fisher算法实例

将多维特征空间的点投影到一条直线上进行判别

2009-06-28

华为c++内部培训资料

重点讲解了c++语言里面的一些难以理解的知识点和容易出错的地方,值得关注

2009-06-18

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

TA关注的人

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