自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王教余的专栏

狂沙烧大漠

  • 博客(50)
  • 资源 (10)
  • 收藏
  • 关注

转载 ioremap作用

见http://blog.csdn.net/codectq/article/details/25658813

2015-03-30 10:47:32 924

转载 谈EXPORT_SYMBOL使用

谈EXPORT_SYMBOL使用详见http://blog.csdn.net/macrossdzh/article/details/4601648

2015-03-30 10:32:13 682

原创 设计模式 --责任链模式 Chain of resposbility

定义:责任链模式是一种对象的行为模式【GOF95】。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。实际的应用中责任链并不仅仅表现为链式结构,还有树型责任表等等。该模型的核心思想是分层处理客

2015-02-01 23:03:09 1049

原创 extern C作用总结

extern C使用主要用与在C++代码中调用的C函数的声明,或C++中编译的函数要在C中调用,也即是导入C形式的函数库或者提供C类型的库给C调用,

2015-01-17 19:48:31 3408

原创 软件资源管理模式(1)

资源是一种实体,对于任何计算机系统(智能系统),使用的申请都受到一定的限制。如内存资源、IO资源及CPU资源等等。在我们熟知的系统中如Linux、window、mac&Android等系统内核都对这些资源做了各种管理机制。

2015-01-13 20:53:17 1694 2

转载 hash_map和map的区别

文章来源:http://blog.csdn.net/dongtingzhizi/article/details/8629285  在网上看了一篇《详细解说STL hash_map系列》的文章(http://blog.163.com/liuruigong_lrg/blog/static/27370306200711334341781/),以及一些其他关于STL map和has

2015-01-13 20:46:44 3104 1

转载 处理器微结构史话(1)

第一章:天降大任1945年8月6日与9日,广岛和长崎两座日本本土城市先后在惊天动地的原子弹爆炸中被毁灭,核武器首次步入公众视野,全世界都被那两朵巨大蘑菇云的威力所震慑。这两道重击也直接摧毁了日本最后的抵抗意志,一周后的8月15日,日本宣布无条件投降,在人类历史上写下最惨痛一页的第二次世界大战终于结束。核武器横绝古今沛然莫御的威力,使得它成为战后制衡国际局势的一大王牌,对它的

2014-04-06 10:45:12 2012 1

原创 c/c++性能优化--I/O优化(上)

这节本想直接介绍I/O优化的,后来思考一下有必要对常用的I/O操作函数的特点介绍一下,这样要好些。下面就先介绍和I/O有关的库函数(以C99为准)不同的操作系统有不同的文件管理方式,现行的主要有FAT(fileallocation table)、FAT32、NTFS(new technoly file system)、NWFS(netware file system)以及UFS(unix file system)当然还有一些分布式文件管理系统如:AFS(andrew filesystem)、DFS、Mic

2013-07-14 22:52:46 4523

原创 c/c++性能优化--- cache优化的一点杂谈

之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论。笔者有幸阅读过IBM某个项目的框架代码,和我以前看过的一些代码(包括国内某顶级电信商的代码),感觉人家在细节上做的比较细,对代码的效率和安全性花了不少心思。当然国内公司也有好的代码,但是我觉得中国和美国不仅在硬件方面落后,软件方面也要落

2013-07-01 12:53:56 24024 14

原创 ungetc()函数的用法

ungetc函数是将输出流中的废弃数据退入流中去。MSDN是这样定义的int ungetc( int c, FILE *stream );Parametersc Character to be pushed.stream Pointer to FILE structure.Return ValueIf successful, each of thes

2013-06-20 16:55:41 16150

转载 c++ 中volatile关键字

本文转自http://www.cnblogs.com/Chase/archive/2010/07/05/1771700.html引子1    猜猜看,下面这段代码有什么问题:?1234voidDelay(UINT32n) {    while(—n);}    答案:

2013-06-05 10:51:13 996 2

原创 不用下标操作实现字符串回文判断

如题,贴出代码,代码通过VS2008编译#include #include /* judging a string is a palindrome or not*/int judge_palindrome(const char* str=NULL){ if (str==NULL) { return -1; } cha

2013-06-04 13:13:42 843

原创 C可变参数列表

C语言的可变参数列表通过stdarg.h头文件中定义的stdarg宏来实现的,这个头文件什么了一个类型va_list和三个宏va_start、va_arg、va_end。可变参数就是通过这几个来实现的。下面给出代码,通过VS2008编译。 #include #include #include float average(int n_values,...)//n_values 是

2013-06-02 15:27:20 771

原创 指定字符替换

在网络编程的URL解析过程中,空格,#可能会导致网络无法正常传输,需要将其转化为相应的ASCII码,如空格的ASCII码为0X20,通常把他转为%20,下面给出相应转换代码,代码通过VS2008编译。 // blade.cpp : Defines the entry point for the console application.//#include char* RePlace(

2013-05-09 09:58:56 891

原创 雅虎北京研究院hack大赛

Question 1 / 5 (Problem A)Given a rational number expressed as A/B where A and B are integers, find the position of Mth occurrence of digit D (0-9) after decimal point. For example 3/7 = 0.4285714

2013-05-08 20:46:02 1569 1

原创 雅虎北京研究院hack大赛题目

Question 1 / 5 (Problem A)Given a rational number expressed as A/B where A and B are integers, find the position of Mth occurrence of digit D (0-9) after decimal point. For example 3/7 = 0.4285714

2013-05-08 20:44:16 1273

原创 求素数

质数,又称素数,指在一个大于1自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。代码通过VS2008编译// blade.cpp : Defines the entry point for the console application.//#inc

2013-05-07 21:11:01 699

原创 归并排序

一、归并排序是稳定的排序方法二、时间复杂度为n*log(n)三、空间复杂度为n四、代码均通过vs2008编译运行 /************************************************************************//* copyright@Fisher Wang

2013-05-04 16:55:03 701

转载 多线程和进程的一个简单的解释(转自阮一峰的博客)

进程与线程的一个简单解释作者: 阮一峰日期: 2013年4月24日进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的

2013-04-25 09:21:08 1510 2

原创 插入排序

插入排序(insert sort):插入排序是最简单和最基础的排序算法之一,插入排序由N-1趟排序组成。对于P=1趟到P=N-1趟,插入排序保证从位置0到P为有序状态,插入排序的时间性能为O(N*N),空间复杂度为O(1)。在实际情况下,如果原有序列有大多数部分是有序的,那么插入排序将运行的很快。下面代码原始序列是随机产生的,对随机产生的序列进行排序,结果输出。代码均通过VS2008编译通过。

2013-04-21 23:11:27 750

原创 结构体和联合体的区别

结构体和联合体的主要区别是:结构体内部数据时分开放的,而联合体所有数据是放在一个地址空间内,我们只能使用其中一个数据。下面举例说明:代码均通过vs2008编译   #include int main (){ union { int i; struct { char b;

2013-04-20 21:05:54 1710

转载 vc6.0移植到vs2008下问题总结

最近由于要在SISCO的MMS库基础上开发,需将开发平台由VC6.0升级至VS2008,所以需要将原有的项目迁移,免不了碰到移植上的一些问题,特将它们归纳如下:1 消息映射VS2008对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2008下编译不通过a. ON_MESSAGE(message,OnMyMessage);OnMyMessage返回值必须为LRESUL

2013-04-16 17:20:39 1149

转载 海量数据处理:十道面试题与十个海量数据处理方法总结

海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度

2013-04-15 21:46:40 737

原创 分离链接法实现哈希表

代码通过VS2008编译/* *@author  : Fisher Wang *@function: Realize a hash table *@date    : 11/4/2013*/hash_table.h#include#includetemplatevoid infor(const T1& para1=' ',const T2& para2='

2013-04-15 21:40:01 988

转载 Bloom Filter的原理基本介绍

Bloom Filter概念和原理焦萌 2007年1月27日 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter

2013-04-05 15:36:41 816

转载 腾讯2012年实习生笔试加分题

之前参加2012年腾讯实习生笔试时,在考场中遇到一道加分题,当时灵光一闪,直接挥笔就解决这道题目。今天看到学校论坛上有师弟师妹们在询问这题的解法,就写篇博客来分享我的解法吧,也欢迎大家讨论其它解法。    首先来看题目描述:三 、加分题28)给定一数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法:

2013-04-02 20:47:15 1286

原创 查找树(二叉树)的构建以及分层遍历

代码均通过vs2008编译运行头文件代码:#include #include //包含stack和queue,为了方便遍历数据存储#include struct BTree//定义查找树的结构{    int m_data;    struct BTree* m_pLeft;    struct BTree* m_pRight;};struct BTre

2013-04-02 20:40:34 1154 2

转载 单向链表逆序

2、 单链表逆序         第二个题目是很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低的分数。如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如图(1)所示:图(1

2013-03-31 22:56:49 4171

原创 重载debug版本的operator new和operator delete

在实际调试中为了调试方便,我们通常重载一些库函数,在这篇文章中我会重载operator new和operator delete(注意不是new operator和delete operator),让它们可以打印出一些额外信息(程序通过VS2008编译运行)#include void* operator new(std::size_t size,char* file,int line)//重

2013-03-29 11:06:17 901

原创 C++利用new_handler()函数处理异常

C++利用new_handler()函数处理异常C++规定,new_handler要执行下述操作中的一种:(1)使new有更多的内存使用,然后返回(2)抛出一个bad_alloc异常或者其派生异常(3)调用abort或者exit退出下面举例说明,程序通过VS2008编译运行#include #ifndef NUL#define NUL '\0'#endifc

2013-03-28 09:20:03 837

转载 C++异常机制的实现方式和开销分析

C++异常机制的实现方式和开销分析白杨http://baiy.cn 在我几年前开始写《C++编码规范与指导》一文时,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了。没想到时隔几年以后才有机会把这个尾巴补完 :-)。还是那句开场白:“在恰当的场合使用恰当的特性” 对每个称职的 C++ 程序员来说都是一个基本标准。想要做到这点,就必须要了解语言中每个特性的实现

2013-03-22 20:19:30 789

原创 不需要编译器自己生成的函数,就应该明确拒绝

不需要编译器自己生成的函数,就应该明确拒绝在C++类的设计中要注意防止类自身生成的函数对实际应用的干扰。举个例子:一个表示个人信息的类,class PersonalInformation{ ..... };,对于个人信息,从原则上来说不可能一样的,但是实际操作时候我们可能会出现PersonalInformation p1 = p2;这样的assigned操作。这对于这个类毫无用处,而且会产生一

2013-03-22 09:17:47 721

原创 c++保证对象在创建时正确初始化

通常如果你使用c part of c++,而且初始化会招致运行期成本,那么你可以不保证初始化,但是一旦进入c++ no_part of c,那么你一定要保证对象正确初始化,这就是为什么在c中array没有初始化,但是到了C++中vector却在对象建立时候调用construtor 初始化,但是我们一定要避免出现C++对象的伪初始化(assigned初始化),下面代码说明,一下代码通过VS2008编

2013-03-17 15:35:54 859

原创 重写strpbrk函数

程序通过vs2008编译#include #include #define NUL '\0'char* find_char(const char* source,const char*check_char )//find_char函数完成strpbrk函数功能{    size_t len=strlen(check_char);    while (*source++

2013-03-14 16:34:02 731 2

原创 c/c++获取本机时间

通过vs2008编译运行#include #include #include//必须包含time.hint main() {    struct tm *tm;//需要定义tm结构体,存放时间信息    time_t now;    now = time(NULL);//注意调用方式    tm = localtime( static_cast(&now) );

2013-03-04 14:01:33 1335

原创 c++输出(<<)操作符重载

代码通过VS2008编译运行注意:输出和输入操作符,必须声明为类的友元函数#include #include#include class CheakoutRecord{public:    int set_book(const double& id,const std::string& topic);    friend std::ostream& operat

2013-03-04 10:47:01 737

原创 setbuf函数使用注意事项

程序输出有两种方式:一种是即时处理方式,另一种是先暂存起来,然后再大块写入的方式,前者往往造成较高的系统负担。因此,c语言实现通常都允许程序员进行实际的写操作之前控制产生的输出数据量。这种控制能力一般是通过库函数setbuf实现的。如果buf是一个大小适当的字符数组,那么:setbuf(stdout,buf);语句将通知输入/输出库,所有写入到stdout的输出都应该使用buf作为输出

2013-03-02 16:08:12 9922 1

原创 宏条件编译

//在vs2008下编译通过#include #include#ifndef OPTION_LONG//预处理定义#define OPTION_LONG 1#define OPTION_DETAILED 0#endifstatic int print_ledger_long(int rhs)//定义条件函数{    std::cout<<rhs<<std::en

2013-02-28 11:05:21 770

转载 大小端、位段(或者叫位域)和内存对齐

听到好几个朋友说到去一些公司做面试,总是遇到关于大小端、位段(或者叫位域)和内存对齐的考题,然后就不知所措了。虽然我认为很多开发根本就用不到这个,但是我认为很有必要学习理解这些知识点,因为它可以让你更了解C++的,了解程序在内存的运行情况,也能加深对计算机系统的理解。        声明:由于本文的代码会受到计算机环境的影响,故在此说明本篇博文中的程序的运行环境。         1、Mi

2013-01-30 13:29:38 2833

转载 c++输入输出流介绍

简介本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写入一些字符: #include  v

2013-01-28 15:20:27 930 1

Essential C++

Essential C++ :Generic programming and the Standard Template Library (STL) Object-based programming and class design Object-oriented programming and the design of class hierarchies Function and class template design and use Exception handling and Run-Time Type Identification

2013-06-27

ANSI-C实现面向对象

这本书讲了很多C++,JAVA中未曾提到的面向对象的思想,实乃牛人的上乘作品

2013-01-26

c++编程规范 谷歌

googlec++代码规范 不错

2013-01-23

TR1 C++ 扩展库函数

TR1库 现在vs2008已经使用了 非常不错

2013-01-22

linux多线程编程

linux多线程编程 c++ 内核开发 互斥锁

2013-01-17

《设计模式》

对有意向深度了解c/C++的人来说是本好书

2012-09-13

目标跟踪代码

opencv的目标跟踪程序 手势识别

2012-08-18

空空如也

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

TA关注的人

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