自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (5)
  • 收藏
  • 关注

原创 运用比较器实现机制(函数对象和指针对象)实现最大堆和最小堆

先来看STL源码://priority_queue模板源码:templateclass_Container = vector,class_Pr = less >classpriority_queue{    // priority queue implemented with a _Containerpublic:       explicitpriority_queue(const_Pr& _Pred)         : c(), comp(_Pred)     {             //To u

2011-03-08 21:10:00 977

原创 我也来写KMP

网上看了很多关于KMP算法,唉,毕竟不是中国人自己写出来的东西,所以有的人乱写一通(当然,在您眼中,我或许也是),比如KMP算法中有一个公式,对着这个公式进行得出next数组的值,比如下面:(1)next[0]= -1 意义:任何串的第一个字符的模式值规定为-1。(2)next[j]= -1   意义:模式串T中下标为j的字符,如果与首字符相同,且j的前面的1—k个字符与开头的1—k个字符不等(或者相等但T[k]==T[j])(1≤k如:T=”abCabCad” 则 next[6]=-1,因T[3]=T[6

2010-10-10 20:45:00 802

原创 将文件之间的编译依赖关系降至最低

考虑这样几个类,A、a1、a2、B,其中A和B是要暴露给用户的类。 1.最初组织关系如下: //a1.h#include class a1{public: void DoSomething() {   std::cout }}; //a2.h#include class a2{public: void DoSomething() {  std::cout }};

2009-08-24 15:52:00 1296

转载 C语言编译全过程

    编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。    编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1

2009-07-26 22:19:00 686

原创 c++变量初始化(猜想......)

全局的、名字空间的、静态的对象会被自动初始化适当类型的0。堆,容器中和类的显式空构造函数的对象会被调用其构造函数初始化,但并不会被初始化为相应的0,(没有数组)如 char ch[10]; for(int i = 0; i cout 结构和类成员的初始化:谈到结构和类成员,除非提供显示的构造函数进行初始化,否则可以分为以下两种(是否用默认构造函数初始化):c

2009-07-24 16:58:00 1178

原创 c++内存到底分几个区?!

 一个由c/C++编译的程序占用的内存分为以下几个部分 (大致有3种说法) 一:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。  2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。  3、全局

2009-07-24 13:19:00 4206

转载 消息分析器-----HANDLE_MSG

windows消息分析器的实现很好理解,windows操作系统使用消息处理机制,那么,我们所设计的程序如何才能分辨和处理系统中的各种消息呢?这就是消息分析器的作用.       简单来说,消息分析器就是一段代码,在我的讲述中,将分7重来循序渐进的介绍它.从最初的第1重到最成熟的第7重,它的样子会有很大的变化.但,实现的功能都是一样的,所不同的,仅仅是变得更加简练罢了.      程序开始时

2009-07-23 17:47:00 1852

转载 Linux c 输出中文

今天在CSDN的Blog首页看到一篇文章“也谈计算机字符编码 ”,由于前一阵业余翻译了“UTF-8 and Unicode FAQ for Unix/Linux”一文,自己对字符集、编码和Unicode等内容一直保着者很强的兴趣,自然不会放过这样的文章。作者的文章写得很明白易懂,虽然有一些概念上的细节问题我觉得有商榷之处;作者还给出一个简单的在windows下使用wprintf正确

2009-07-14 14:09:00 7315 2

原创 程序语言的分类

程序语言可分为5类(严格意义上分为2、4、5三类)  1、web page script languages    就是网页代码,比如Html、javascript、Css、Asp、Php、Xml都应该属于此类(Html不应该属于anguages的,可能他觉得太简单了吧,不过我觉得Html也应该算的,大家爱听谁的就听谁的好了,这个不重要)  2、Interpreted Languages(解释

2009-07-10 17:16:00 3708

转载 C++中extern “C”含义深层探索

C++中extern “C”含义深层探索1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重

2009-07-07 13:45:00 728

原创 C++/VC++ 命名及其他规范

   第一部分:共性规则共有八项。作为指导供成员采纳。【规则1】标识符应简单明了,望文知意。标识符采用英文单词。切忌使用汉语拼音来命名。程序中的英文单词一般不要太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。尽量不要使用单词缩写或首字母缩写。只有当标识符过长时才考虑使用单词缩写。在使用缩写时,不要自创缩写,尽量使用被广泛接受的缩写。 

2009-07-03 23:19:00 3530 2

原创 Windows字符编码那些事儿

1. visual studio项目中的Character Set设置  vs里的cs设置有三种,NS,Unicode,MBCS,后两种皆是显示设置编译条件,即是向Command Line中添加UNICODE和_UNICODE宏、  _MBCS宏,而当采用NS的设置时,以下两种写法便出现了差异: #ifdef UNICODE#define myPrint myPrintW#elif

2009-07-03 10:21:00 4009

原创 DLL入门

DLL:    1.构建DLL,选择Export Symbols+Procompiled header工程    2.调用DLL,一般为静态调用:      2.1 .h 直接用#include "DLL/dll.h"或者将DLL添加到工程属性c/c++->General->Additional Include Directories里      2.2 .lib 直接添加已存

2009-07-02 00:14:00 742

转载 linux安装软件详细解答 rpm tar.gz tar.z tar.bz2 tar.tgz .deb .bin

 在Windows下安装软件时,只需用鼠标双击软件的安装程序,或者用Zip等解压缩软件解压缩即可安装。在Linux下安装软件对初学者来说,难度高于Windows下软件安装。下面我就详细讲解Linux下如何安装软件。先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的

2009-07-01 00:29:00 2571

转载 Visual C++中函数调用方式浅探

 函数调用的几个概念:_stdcall,_cdecl(c declare)....                    左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。        _stdcall是Pascal程序的缺省调用方式,通常用于Win32   Api中,函数采用从右到左的压栈方式,自

2009-06-30 10:31:00 1266

转载 c#多线程教学(5):Case 学习多线程

  在前面的多线程编程系列的文章中,我们了解了在.NET中多线程编程必须要掌握的基本知识,但是可能大家看了文章之后,感觉还是很模糊,对一个具体的编程可能还是觉得无从下手,究其原因可能是理论讲的过多,而没有太多的实际参考例子,造成收获不大。因此,在接下来的文章中,我将给出几个典型的多线程编程的实例,让大家有更清楚的认识。Case 1 - No synchronization  在我们的第一个例子中,

2009-06-13 19:07:00 704

转载 c#多线程教学(4):线程池和异步编程

  如果你仔细阅读了我前面的三篇文章,我相信你对用.NET Framework提供的System.Threading.Thread类和一些线程同步的类基本的线程知识和多线程编程知识很了解。我们将在这里进一步讨论一些.NET类,以及他们在多线程编程中扮演的角色和怎么编程。它们是:  System.Threading.ThreadPool 类  System.Threading.Timer 类  如果

2009-06-13 18:59:00 603

转载 c#.net多线程编程教学(3):线程同步

  随着对多线程学习的深入,你可能觉得需要了解一些有关线程共享资源的问题. .NET framework提供了很多的类和数据类型来控制对共享资源的访问。  考虑一种我们经常遇到的情况:有一些全局变量和共享的类变量,我们需要从不同的线程来更新它们,可以通过使用System.Threading.Interlocked类完成这样的任务,它提供了原子的,非模块化的整数更新操作。  还有你可以使用Sys

2009-06-13 18:58:00 545

转载 c#.net多线程编程教学(2):Thread类

这章将向大家介绍.NET中的线程API,怎么样用C#创建线程,启动和停止线程,设置优先级和状态.  在.NET中编写的程序将被自动的分配一个线程.让我们来看看用C#编程语言创建线程并且继续学习线程的知识。我们都知道.NET的运行时环境的主线程由Main ()方法来启动应用程序,而且.NET的编译语言有自动的垃圾收集功能,这个垃圾收集发生在另外一个线程里面,所有的这些都是后台发生的,让我们无法感

2009-06-13 18:57:00 543

转载 .NET多线程编程(1):多任务和多线程

 在.NET多线程编程这个系列我们讲一起来探讨多线程编程的各个方面。首先我将在本篇文章的开始向大家介绍多线程的有关概念以及多线程编程的基础知识;在接下来的文章中,我将逐一讲述。NET平台上多线程编程的知识,诸如System.Threading命名空间的重要类以及方法,并就一些例子程序来作说明。 引言  早期的计算硬件十分复杂,但是操作系统执行的功能确十分的简单。那个时候的操作系统在任一时间点只

2009-06-13 18:56:00 593

Google_C++_编程规范

Google C++ 编程规范 最新 完全 翻译 版

2011-03-11

windows API 一日一练.pdf

学习windows API 程序设计的绝佳方式,很多例子,一目了然,字典级作用。

2009-08-27

gcc / g++ / gdb 中文手册

gcc g++ gdb完全中文手册,帮助多多,欢迎下载!分析详细,一目了然!

2009-07-19

gdb 完全中文手册

gdb完全中文手册,帮助多多,欢迎下载!分析详细,一目了然

2009-07-19

gcc / g++ 中文手册

gcc / g++ 中文手册,帮助多多,欢迎下载。

2009-07-19

空空如也

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

TA关注的人

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