自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thomas chen的专栏

记录一些平时整的东东,若干天、月、年后后来看看~~

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 快速排序

呈现快速排序的三个不同版本,以最后一个主元素为元,以第一个元素为主元,随机主元。1、以最后一个主元素为元int partition(int *A, int p, int r);void swap(int *a, int *b);void quick_sort(i

2011-08-15 11:13:55 520

转载 各界优秀人士的博客地址

转自: http://blog.sina.com.cn/s/blog_660e02cc0100gxz9.html经济学界:Gary Becker & Richard Posner(世界著名经济学家,GaryBecker为诺贝尔经济学奖得主):  http://becker-posner-blog.comGregory Mankiw(哈佛大学经济学教授

2011-06-19 15:21:00 2741

转载 用引用返回值

转自 http://blog.csdn.net/tcdddd/archive/2010/04/23/5519332.aspx函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本。  例如,下面的程序是有关引用返回的4种形式:    //*********************    //**   ch9_6.cpp  **    //**************

2011-06-09 08:38:00 707

转载 程序员能力矩阵 你属于哪一层

转自 http://blog.csdn.net/tcdddd/archive/2010/04/23/5519160.aspx计算机科学 Computer Science软件工程 Software Engineering程序设计 Programming经验 Experience

2011-06-09 07:48:00 917 1

原创 运算符重载

     不能重载的5个运算符:类属关系运算符.、成员指针运算符*、作用域分辨符::、sizeof运算符和三目运算符?:。     运算符的重载一般有两种形式:成员函数和非成员函数(友元)。当然,将运算符做为非成员、非友元重载也是可以的。但是,这样的运算符重载函数访问类的私有和保护成员时,必须使用类的公有接口中提供的设置数据和读取数据的函数,调用这些函数时会降低性能,可以内联这些函数以提高性能

2011-06-08 21:39:00 640

转载 C++类库介绍

转自 http://www.cnblogs.com/wangjs720/archive/2007/01/08/615055.html 标准库 标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。 1、 Dinkumware C++ Libra

2011-06-05 10:05:00 490

转载 C++回调函数(callback)与仿函数(functor)的异同

转自 http://blog.csdn.net/xushiweizh/archive/2007/03/03/1519828.aspx回调函数(callback)与仿函数(functor)很多时候从用途上来看很相似,以致于我们经常将它们相提并论。例如:inline bool compare(int a, int b){ return a > b;} struct

2011-06-03 20:28:00 625

转载 仿函数使用要领

转自 http://blog.csdn.net/rendaduiyan/archive/2006/03/09/620303.aspx仿函数定义仿函数,又或叫做函数对象,是STL(标准模板库)六大组件(容器、配置器、迭代器、算法、配接器、仿函数)之一;仿函数虽然小,但却极大的拓展了算法的功能,几乎所有的算法都有仿函数版本。例如,查找算法find_if就是对fi

2011-06-03 20:25:00 524

转载 C++著名程序库的比较和学习经验

转自 http://sue602.blog.163.com/blog/static/31495307201062123315982/1、C++各大有名库的介绍——C++标准库2、C++各大有名库的介绍——准标准库Boost3、C++各大有名库的介绍——GUI4、C++各大有名库的介绍——网络通信5、C++各大有名库的介绍——XML6、C++各大有名库的介绍——科学计算7

2011-06-03 15:01:00 522

转载 C++中的引用与指针的区别

<br />转自 http://blog.chinaunix.net/space.php?uid=8581780&do=blog&cuid=257815<br />指针和引用的区别<br /><br />(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针. <br /><br />由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. <br /><br />String & rs

2011-05-31 17:12:00 419

转载 强制类型转换 static_cast、dynamic_cast、reinterpret_cast、和const_cast

<br />转自 http://blog.csdn.net/lemonbee/archive/2008/03/03/2143924.aspx<br /> static_cast、dynamic_cast、reinterpret_cast、和const_cast<br /> 关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dy

2011-05-30 10:39:00 898

转载 对象数组,对象指针,常对象、对象的常引用

<br />转自 http://blog.163.com/zhoumhan_0351/blog/static/3995422720100253550307/<br />1、对象数组<br />Student stud[50]; //假设已声明了Student类,定义stud数组,有50个元素<br />在建立数组时,同样要调用构造函数。如果有50个元素,需要调用50次构造函数。在定义对象数组时应当怎样实现初始化呢?在花括号中分别写出构造函数并指定实参。如果构造函数有3个参数,分别代表学号、年龄、成绩。则可以

2011-05-27 10:47:00 1632

转载 友元函数和友元类

<br />转自 http://www.cppblog.com/twzheng/articles/21020.html<br />友元函数和友元类<br /><br />        采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提

2011-05-23 13:57:00 435

转载 UNIX

转自 http://blog.csdn.net/justin12zhu/archive/2009/05/17/4195835.aspx【UNIX简介】UNIX,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。最早由Ken Thompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的贝尔实验室开发。经过长期的发展和完善,目前已成长为一种主流的操作系统技术和基于这种技术的产品大家族。由于UNIX具有技术成熟、可靠

2011-05-23 10:13:00 623

转载 Linux

<br />转自 http://blog.csdn.net/justin12zhu/archive/2009/05/17/4195863.aspx<br />Linux操作系统,是一种计算机操作系统,读音为 ['li:nэks]。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。一、概述<br />  简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intelx86系列CPU的计

2011-05-23 10:12:00 703

转载 C++

转自 http://blog.csdn.net/justin12zhu/archive/2009/05/17/4195852.aspx【C++概述】  C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。   C++ 是C语言

2011-05-23 10:12:00 517

转载 C语言

转自 http://blog.csdn.net/justin12zhu/archive/2009/05/17/4195848.aspx定义  C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。主要有以下特点:  C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如我是学硬件的,单片机以及嵌入式系统都

2011-05-23 10:09:00 736

转载 类模板与模板类

1.类模板与模板类的概念⑴ 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默写成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。  如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。⑵ 类模板定义 定义一个类模板,一般有两方面的内容:A.       首先要定义类,其格式为:template clas

2011-05-23 09:55:00 421

原创 二叉树遍历(非递归实现--栈实现)

<br />和上一篇一样先建了一颗树用于实验:<br /><br />实现了三种遍历方法:先序遍历,中序遍历,后序遍历。以以上的树为例输出的结果应为:A, B, D, C, E, F; B, D, A, E, C, F; D, B, E, F, C, A.<br />/************************************************************************//* author : thomas E-mail: chenhua308@gm

2011-05-21 15:10:00 772

转载 循环不变式的思想及其应用

<br />http://blog.csdn.net/davelv/archive/2010/10/20/5952981.aspx<br />循环不变式的思想及其应用<br /><br />  循环不变式(loop invariants)不只是一种计算机科学的思想,准确地说是一种数学思想。在数学上阐述了通过循环(迭代、递归)去计算一个累计的目标值的正确性,属于基础数学的范畴,而且在计算机上也应用广泛。初次见到这个词是在《算法导论》,在第二章描述了这个思想和正确性,后来又在《编程珠玑》上再次重逢,

2011-05-21 10:11:00 504

原创 二叉树遍历(递归实现)

先用比较笨的方法创建可以棵如下的树:主要是用于后面的实验用,总的来讲,用递归实现遍历很简单。实现了三种遍历方法:先序遍历,中序遍历,后序遍历。以以上的树为例输出的结果应为:A, B, D, C, E, F; B, D, A, E, C, F; D, B, E, F, C, A./************************************************************************//* author : thomas E-mail: chenhua308

2011-05-20 10:30:00 459

转载 回调函数

<br />转自 http://hi.baidu.com/spidermanzy/blog/item/b25b00956469c6097bf48016.html<br />简介<br /><br />  对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 <br /><br />什么是回调函数?<br /><br />  简而言之,回调函数就是一个通过函数指针调用的函数。

2011-05-18 22:06:00 333

转载 C++成员函数的重载、覆盖与隐藏

转自 http://blog.csdn.net/sendy888/archive/2007/08/11/1739113.aspx成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖:派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)

2011-05-18 20:09:00 355

转载 C++函数的高级特性-函数重载

<br />转自: //http://blog.csdn.net/sendy888/archive/2007/08/11/1738997.aspx<br />对比于C 语言的函数,C++增加了重载(overloaded)、内联(inline)、const 和virtual<br />四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const 与<br />virtual 机制仅用于类的成员函数。<br />1.重载(overloaded)<br />重载的理由:<br />1:在

2011-05-18 20:07:00 387

转载 C++中const用法总结

<br />转自: http://www.cnblogs.com/Clingingboy/archive/2011/02/25/1965304.html<br />作者JuKevin<br />1. const修饰普通变量和指针<br />const修饰变量,一般有两种写法:<br />const TYPE value;<br />TYPE const value;<br />这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。<br />对于一个非指针的类型T

2011-05-18 19:49:00 432

转载 c++继承经典例子

<br /><br />c++继承经典例子<br />#include <iostream.h><br />class Base<br />{<br />private:<br />        int b_number;<br />public:<br />        Base( ){}<br />        Base(int i) : b_number (i) { }<br />        int get_number( ) {return b_number

2011-05-18 10:10:00 437

原创 2011 ZTE sec的一道大题(修改完)

本想删了上一文章,但想了想,还是留着,毕竟有对比才有进步~~修改的部分主要的融合函数,改动不大@@/************************************************************************//* author : thomas E-mail: chenhua308@gmail.com *//**********************************

2011-05-17 13:57:00 545

原创 2011 ZTE sec的一道大题

<br />有一个单向有序循环链表,链表内数据从小到大排列<br />   完成如下函数的实现代码<br />1、实现单向有序循环链表的插入操作:<br />   输入参数:pLink 链表的表头指针,为空时表示链表为空<br />             pNode 需要插入的新节点,为空时不插入新节点<br />   返回值    链表的新头节点指针<br />2、实现两个链表的合并操作,删除两个链表原来的结构,组成一个新链表,并返回头指针<br />其中融合仍有问题,不知道咋回

2011-05-17 11:24:00 1275 2

原创 分享续

<br />《让你不在害怕指针》<br />http://space.ednchina.com/upload/2009/3/19/b9ca4f12-5e92-4683-9151-48897d65bd1f.pdf<br />《GNU make v 3.80中文指南》<br />http://www.linuxsir.org/main/?q=node/168<br />《GCC中文手册》<br />http://bbs.linuxpk.com/thread-4730-1-1.html

2011-05-16 19:27:00 422

原创 分享几本专业书籍及一些文档的链接

推荐一些书籍,涵盖需要利用C进行研发工作,和利用C++语言进行开发,操作系统原理,Unix操作系统及开发和开源介绍相关的书籍http://book.douban.com/subject/1230413/http://book.douban.com/subject/1885170/http://book.douban.com/subject/1236999/http://book.douban.com/subject/3012360/http://book.douban.com/subject/3652388

2011-05-16 17:11:00 1520

原创 8位有符号数的补码表示范围

范围是 -128至127.根据补码的几条规定即可推出上述结论:1 若二进制每位全为0,则表示数02 若最高位(即符号位)为0,表示正数3 若最高位为1, 表示是负数,而该负数的绝对值是多少呢?将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。例如,二进制的 10000000 的最高位为1, 所以它表示的是负数。是负的多少呢?我们将其八位全部取反,得到01111111, 然后加1,得到10000000. 将该数看作无符号数,值为128

2011-05-16 16:28:00 5443

转载 attribute的用法总结

ibute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。__attribute__语法格式为:__attribute__ ((attribute-list))其位置约束为:放于声明的尾部“;”之前。函数属性(Function Attribute)函数属性可以帮助开发者把一些特性添加到函数声明中,从而可以使编译器在错误检查方面的功能更强大。__attribute__机制也很容易同非GNU应用

2011-05-16 15:49:00 3284

转载 字节对齐(强制对齐以及自然对齐)

<br />struct  {}node;<br />32为的x86,window下VC下sizeof(node)的值为1,而linux的gcc下值为0;<br />一、WINDOWS下(VC--其实GCC和其原理基本一样,象这种问题,一般要查具体的编译器设置)字节对齐的规则:<br />1、一般设置的对齐方式为1,2,4字节对齐方式,VC一般默认为4字节(最大为8字节)。结构的首地址必须是结构内最宽类型的整数倍地址;另外,结构体的每一个成员起始地址必须是自身类型大小的整数倍(需要特别注意的

2011-05-16 11:07:00 13633

转载 关于Big Endian 和 Little Endian

<br />一、字节序<br />来自:http://ayazh.gjjblog.com/archives/1058846/<br />谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢?<br /><br />     其实big endian是

2011-05-16 11:01:00 948

转载 void 及 void *数据类型

void及void指针类型2008-05-03 11:02<br />1.概述<br />  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并<br /><br />详述void及void指针类型的使用方法与技巧。<br /><br />2.void的含义<br />  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。<br /><b

2011-05-15 21:26:00 1912

转载 野指针的概念

野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。 二、指针p被

2011-05-15 21:06:00 611

原创 用链表实现队列数据结构

<br />     功能和函数借口和用数组实现队列数据结构一致~~~它和前者的不同在于可以实现任意长的队列,但缺点在于需要频繁地调用系统函数来分配和维护对内存~~~具体采用哪种方式可能要看具体的应用场景!!!<br />/************************************************************************//* author : thomas E-mail: chenhua308@gmail.com

2011-05-15 13:32:00 1468

原创 用数组实现循环队列

<br />      若用数组实现队列一般会整成循环队列,要不队列没法用~~~实现的功能包括创建队列、入队列、出队列、读队列头~~~~~~~<br />/************************************************************************//* author : thomas E-mail: chenhua308@gmail.com *//******

2011-05-15 13:27:00 10216 1

原创 用动态数组实现堆栈数据结构

<br />和用静态数组的唯一区别在于,申请的是堆内存而非栈内存,且数组的大小可以任意调整~~<br />/************************************************************************//* author : thomas E-mail: chenhua308@gmail.com *//******************************

2011-05-15 13:23:00 1420

原创 用静态数组实现栈数据结构

<br />数据结构的函数借口基本不变,变得是数据存储方式(用静态数组)~~~~<br />/************************************************************************//* author : thomas E-mail: chenhua308@gmail.com *//*************************************

2011-05-15 13:20:00 575

IT历史上最有影响力的150人

Who Are The All-Time Heroes of i-Technology?

2010-05-04

空空如也

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

TA关注的人

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