自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 qt .pro

原文网址:http://blog.csdn.net/adriano119/archive/2010/09/11/5878169.aspx 在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。

2012-11-14 07:52:50 627

转载 assert.h

0.标准头文件的特点:具有幂等性、相互独立性、和文件级别的声明等同。    库中的每一个可见函数都占据着单独的C源文件;    每个隐藏的名字都以一个下划线和一个大写字母开头;    库中隐藏的函数和数据对象通常占据以x开头命名的C源文件;    在一个库的可见函数定义中,函数名被一对括号括住,所有这样的函数声明都会被相应的头文件中的宏定义所掩盖,所以这对括号阻止了翻译程序识别和展

2012-11-12 19:43:35 262

转载 C标准库分析之<assert.h>

* "__FILE__"是预定义的宏(也叫内置宏),值是所在文件的文件名(字符串字面量) *//* "__LINE__"是预定义的宏,值是调用的语句所在文件中的行数(是十进制常量) *//* assert.h standard header */#undef assert /* 良性取消assert定义 */#ifdef NDEBUG    #define assert

2012-11-12 19:42:38 406

转载 按位操作

我还不是一个职业程序员,也没有写过太多的代码,目前还只是一个爱好者吧。目前为止,我从来没有使用过按位运算和操作,不论是在C++或者AS的实际应用中……不对,应该说没有刻意主动使用过,特别是用于实际操作中。今天看到一些启发,记录一下:           首先,为什么要使用按位运算?——能节省在二进制数据和布尔数据之间转换的步骤,所以只要可能,就应该用按位操作来代替布尔操作。这样做得越多,对

2012-10-08 14:57:21 578

转载 代数:一个抽象的世界

关于抽象代数回过头来,再说说另一个大家族——代数。如果说古典微积分是分析的入门,那么现代代数的入门点则是两个部分:线性代数(linear algebra)和基础的抽象代数(abstract algebra)——据说国内一些教材称之为近世代数。代数——名称上研究的似乎是数,在我看来,主要研究的是运算规则。一门代数,其实都是从某种具体的运算体系中抽象出一些基本规则,建立一个

2012-04-30 13:28:25 684

转载 open,write等基本系统IO的带缓冲与不带缓冲的差别

带缓存的文件操作是标准C 库的实现,第一次调用带缓存的文件操作函数时标准库会自动分配内存并且读出一段固定大小的内容存储在缓存中。所以以后每次的读写操作并不是针对硬盘上的文件直接进行的,而是针对内存中的缓存的。何时从硬盘中读取文件或者向硬盘中写入文件有标准库的机制控制。        不带缓存的文件操作通常都是系统提供的系统调用,更加低级,直接从硬盘中读取和写入文件,由于IO瓶颈的原因,速度并不

2012-03-14 22:55:02 218

原创 虚拟地址和虚拟内存区别

程序访问存储器所使用的逻辑地址称为虚拟地址,虚拟地址 (virtual address): 4G虚拟地址空间中的地址,程序中使用的都是虚拟地址。每一个进程都分配有一个4G的虚拟地址。通过虚拟地址访问内存的形式称为保护模式,因为它不允许直接访问内核空间,而对应的直接访问物理内存的方式称为实模式,现在已经很少使用。  比如 mov eax,004227b8h ,这是把地址004227b8h

2012-03-08 18:45:03 1498 4

转载 windows有意思的con输出

今天无意中发现在windows下面不能建立文件名为con的文件,新建时系统提示与现有的文件名同名,无法新建。后来査了一下,con是windows系统保留的系统关键字。除此还有:con、prn、aux、nul、com0、com9、lpt0、lpt9等等。下面的代码很意思:#include int main(){int i;FILE *fp;FILE *f[]={fop

2012-03-07 22:14:13 325

转载 不定参数的应用

不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多。除了格式化输出之外,我实在没看到多少应用。主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替换它。尽管如此,既然大家对它比较感兴趣,我就简单总结一下它的使用和需要注意的常见问题。原理刚学C语言的时候,一般人都会首先接触printf函数。通过这个函数,你可以打印不定个数的变量到屏幕

2012-03-07 21:16:29 105

原创 一个堆栈误操作实例

#include int main(){int a=1;int b=2;int c[2]={3,4};c[2]=5;c[3]=6;printf("%d,%d,%d,%d,%d,%d",c[0],c[1],c[2],c[3],a,b);return 0;}输出为3,4,5,6,6,5.为什么a和b分别为6,5 呢?在堆栈中从高地址到低地址储存为a,

2012-03-06 23:02:18 148

转载 Linux下缓冲区溢出攻击的原理及对策

前言从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回时,相应的堆栈帧从堆栈中弹出。尽管堆栈帧结构的引入为在高级语言中实现函数或过程这样的概念提供了直接的硬件支持,但是由于将函数返回地址这样的重要数据保存在程序员可见的堆栈中,因此也给系统安全带来了极大的隐患。历史上最著名的缓冲区溢出攻击可能要算是1988年11月2

2012-03-06 16:29:59 139

原创 对stdin的理解

#includeint main(){    int ch=getchar();printf("%d\n",ftell(stdin));        ch=getchar();        printf("%d\n",ch);printf("%d\n",ftell(stdin));        rewind(stdin);printf("%d\n",fte

2012-03-04 15:17:27 285

原创 对缓冲区 文件指针 fflush rewind的一次理解

#includeint main(){FILE * file;file=fopen("out.txt","r");printf("%d\n",ftell(file));int ch=fgetc(file);        printf("%d\n",ch);printf("%d\n",ftell(file));fflush(file);ch=fget

2012-03-04 15:01:55 211

转载 论坛解答

1   库函数调用和系统功能调用有什么区别? (1)系统功能调用,指调用操作系统提供的函数       在早期的DOS时代,是用中断来实现的,即著名的   INT   21H       在Windows里,由一系列DLL文件提供,比如User32.DLL   GDI32.DLL等 (2)库函数调用,是指调用语言提供的函数,它由LIB库文件给与支持.       就我所知,从T

2012-03-04 11:49:37 269

转载 (转)fflush函数详解2

在有些时候,你会发现你的输出并没有按照你代码的流程输出, 比如说当你用C语言写了做了一个写文件的函数并印出一些信息,供perl或php等调用.而这时你会发现, perl或php并没有获取到你C语言中的打印信息.而代码什么都没有错误,在linux终端也可以正确打印出来. 这时可真是郁闷吧. 那么, 记住了, 这很大可能是没有更新你的缓冲区了. 这时int fflush(FILE *stream)这个

2012-03-04 11:00:47 254

原创 在文本文件中换行符与\n的区别

在储存在文本文件中的C程序中,换行符enter被储存为‘\n’是一个字符,ascii码为10,而直接键入的\  和n表示的转义字符,实际上储存的是两个字符ascii码为92和102,是完全不同的两个东西。

2012-03-04 10:57:41 251

转载 (转)fflush函数详解1

1.flush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃 fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上。2.fflush的真正作用就是立即将缓冲区中的内容输出到设备。正因为这样,所以只能在写入文件的时候使用fflush。在读取文件时使用fflush是不好的编程方法,因为那样的代码在一些环境下可能正常工作,但在另

2012-03-03 21:42:16 298

原创 简单知识点回顾

#includeint main(){unsigned char a=255;unsigned short b=aunsigned long c=bprintf("%u,%u,%u",a,b,c);return 0;}首先不能直接给 char a直接赋值255(char a只能赋值0-127),只能给unsigned char a赋值255;unsign

2012-03-03 16:47:33 117

原创 深度优先和广度优先

深度优先------> 栈。广度优先------->队列。

2012-02-28 16:06:48 225

原创 dijkstra算法

图论中的dijkstra算法用最简单的话说就是:使用优先队列实现的广度优先搜索。广度优先搜索是利用分叉树的形式,一层一层的对节点进行搜索,利用这种方法来找最短路径是完全行得通的,先搜索出所有的路径,然后通过比较得到最短的那一条路径。但是效率呢?似乎有些差。那么怎么改进呢?回忆广度优先:1 从起始点开始。2 找出所有路径解 3 通过比较这些路径长度,找出最短的那一条。问题在哪

2012-02-28 15:59:38 185

转载 P问题、NP问题、NPC问题、NP难问题的概念[zz]

你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC问题,你如果不是很感兴趣就可以不看了。接

2012-02-26 13:33:43 153

转载 设备

2012-02-21 18:13:25 99

转载 随机数

2012-02-21 14:26:26 98

转载 栈和栈帧



2012-02-21 11:03:50 114

转载 统计函数运算时间

long start,stop;time(&start);/**//*记录开始时间*/fun1();time(&stop);/**//*记录结束时间*/cout"共花时间:"int(stop-start))"\n";

2012-02-17 22:00:33 144

转载 随机数的生成

问题描述:        现要求产生 0~n-1 范围内的 m 个随机整数的有序列表,且不允许重复,m         考虑到 n 的值可能很大,而通常 C/C++ 提供的随机数产生器所能返回的随机数在 [0,RAND_MAX],其中,RAND_MAX 为 0x7FFF。也就是说只有 15 位的随机性。因此,我们需要要有自己的随机数产生器,以便能够返回更多位数的随机数,通常为 30 位。下

2012-02-17 20:45:40 110

转载 位向量和排序

对于排序问题,想必大家都非常熟悉。而且,应该都知道基于比较的排序方法的时间复杂度的下界是 O(n*logn)。尽管又出现了基数排序,使得排序类算法的时间复杂度改进到 O(d*n),但是基数排序方法实现起来还是比较麻烦的。下面这种排序方法的时间复杂度可以认为是 O(n),但是和基数排序方法相比,它的实现非常简单。       为了介绍这种方法,需要对输入数据作如下假定:(1)都是非负整数,(2)

2012-02-17 19:41:36 136

转载 [转]Window, Linux动态链接库的分析对比

摘 要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高 效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了 两种操作系统动态库技术,并给出了将Visual C 编制的动态库移植到Linux上的方法和经验。

2012-02-16 20:22:44 117

转载 程序员人生之路(强烈推荐,分析的透彻!)

本文所指的开发工程师,仅指程序开发人员和以数字电路开发为主的电子工程师。  当你选择计算机或者电子、自控等专业进入大学时,你本来还是有机会从事其它行业的,可你毕业时执迷不悟,仍然选择了开发做为你的职业,真是自做孽不可活。不过,欢迎你和我一样加入这个被其它人认为是风光无限的“白领”吧。  如果你不是特别的与人世隔绝,我想你一定看过金老先生的名著《笑傲江湖》吧,里面有一门十分奇特的武功叫做"辟

2012-02-16 20:18:28 247

转载 线性排序算法

前言插入,快速,合并,堆排序等基于比较的排序算法的最坏情况下界为Ω(nlogn),最坏情况下都要进行Ω(nlogn)次比较。假设有一n个元素组成的数组(假设每个元素都不相等),那么一共有n!排列组合,而且这n!排列组合结果都应该在决策树的叶子节点上(如图1),在图1中n = 3,所以有3! = 6种组合全都在决策树的叶子节点,对于高度为h的二叉树,叶子节点的个数最多为2h(当为满二叉树时为

2012-02-15 17:32:32 1804

转载 快速排序及其分析

前言快速排序的平均情况下是O(nlogn),但是一般都比其他运行时间为O(nlogn)的算法都要快,因为它隐藏的常数因子比较小,但是在最坏情况之下,快速排序的运行时间是O(n2)。快速排序过程快速排序采用的思想是分治思想,就像合并排序算法的思想一样,合并排序算法是从数组的中间开始分治,直到分为N个分组,最后分别合并N个分组的解。如下图,有原始数组A = {1, 3, 4, 5, 7,

2012-02-15 17:29:26 175

转载 堆排序及其分析

前言记得在学习数据结构的时候一味的想用代码实现算法,重视的是写出来的代码有一个正确的输入,然后有一个正确的输出,那么就很满足了。从网上看了许多的代码,看了之后貌似懂了,自己写完之后也正确了,但是不久之后就忘了,因为大脑在回忆的时候,只依稀记得代码中的部分,那么的模糊,根本不能再次写出正确的代码,也许在第一次写的时候是因为参考了别人的代码,看过之后大脑可以进行短暂的高清晰记忆,于是欺骗了我,以为

2012-02-15 17:12:46 104

转载 C语言中的EOF符号常量

先看一段代码/* 将输入复制到输出:读一个字符while(该字符不是文件结束指示符) 输出刚读入的字符 读下一个字符 */#include stdio.h>int main(){ int c; while((c=getchar())!= EOF) { putchar(c); } return 0;

2012-02-15 11:04:35 231

原创 scanf需注意的一点

注意scanf("%d,%d,%d",&a,&b,&c);中%d,%d,%d之间有逗号,在输入数据时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格,tab键或回车键将各个数据隔开

2012-02-14 12:08:27 161

原创 比较三个数最大(小)一个

小知识点积累int max3 (int a,int b,int c){    return  (((a>b)? a:b)>c)? ((a>b)? a:b):c;}

2012-02-14 11:28:05 103

转载 C语言程序的内存布局

C语言程序的内存布局一:C语言程序的存储区域     C语言编写的程序经过编绎-链接后,将形成一个统一的文件,它由几个部分组成,在程序运行时又会产生几个其他部分,各个部分代表了不同的存储区域:     1.代码段(Code or Text):     代码段由程序中的机器码组成。在C语言中,程序语句进行编译后,形成机器代码。在执行程序的过程中,CPU的程序计数器指向

2012-02-14 11:11:24 125

转载 c语言面试题之大数运算

请使用代码计算: 1234567891011121314151617181920*2019181716151413121110987654321 #include iostream>#include algorithm>#include stdio.h>#include string.h>using namespace std;#define MAX_DIGIT 500//大数运算

2012-02-14 11:09:55 238

转载 算法分析——走迷宫问题

1 #include stdio.h> 2 3 int visit(int i , int j); 4 5 int maze[7][7] = { 6 {2,2,2,2,2,2,2}, 7 {2,0,0,0,0,0,2}, 8 {2,0,2,0,2,0,2}, 9 {2,0,0,2,0,2,2},10 {2,2,0,

2012-02-14 11:08:22 194

转载 动态规划解背包问题/C++/Knapsack problem

前言背包问题是一个经典的算法问题,可以用动态规划,贪心法,分支界限法等方法解决问题描述:有n个物品,编号1,2,3,、、n,其中第 i 个物品重量为Wi 价值 Vi ,有一个容量为W的背包。在容量允许范围内,如何选择物品,可以得到最大的价值。(为了简单起见,假设物品的重量 Wi 和价值Vi 都是正数) 根据取物品的方式,背包问题又可以被分为三类:

2012-02-14 11:06:44 538

转载 最大子序列问题及其求解----C 语言学习

这两天看了看最大子序列问题,顺便的做一下笔记,最大子序列问题相信大家都再熟悉不过了,来回顾一下问题:给定整数(可能有负数),求的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为 0 )。下面来看三种实现方法:1,使用两层 for 循环,算法复杂度显然是 O(N²):?intMaxSubSequ

2012-02-14 11:05:48 217

编程精粹.pdf

编程精粹.pdf

2012-01-11

空空如也

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

TA关注的人

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