- 博客(45)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 depends.exe 使用说明
希望将Qt项目用在其他机器,用到 depends.exe,但不是太了解 depends.exe 各个窗口的意义,之后我会写一篇文章专门探讨 dll 和 lib 也会用到 depends.exe,但在这里简单说明用法。
2015-07-31 10:19:32 14885
转载 Qt核心剖析: moc
转自http://devbean.blog.51cto.com/448512/355100本来准备自己写一篇关于Qt moc的文章,但是这篇太好了,所以直接转过来,豆子老师就是棒~~前面我们说过,Qt 不是使用的“标准的” C++ 语言,而是对其进行了一定程度的“扩展”。这里我们从Qt新增加的关键字就可以看出来:signals、slots 或者 emit。所以有人会
2015-07-30 11:50:48 1003
转载 UML类图几种关系的总结
以前觉得毫无用处的UML图,现在居然感觉如此有用,可见知识是在需要的时候才会意思到其重要性,转一篇好文章~~在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛
2015-07-26 09:44:31 1154
原创 设计模式---读书笔记
按照惯例,来一个来由,这是《设计模式—可复用面向对象软件的基础》的读书笔记,整理给自己看的,整理的内容也会不断更新。大神轻喷~~如果不喜欢请留言说明原因再踩哦,谢谢,我也可以知道原因,不断进步
2015-07-26 09:03:49 1041
原创 关于Java与c++隐藏、重写不同实现机制的探讨
本人现在用c++更多,但是以前Java也写过不少,Java和c++很像,但是深入挖一些,Java跟c++的区别很大,就拿刚刚发的另一篇博文虚函数与多态小览来说,里面就感觉有很多不同了,至少“重写”在这两个语言里面的理解就不同了~~跟基友一番讨论,决定把这个问题彻底捋一捋,因为这个是探讨,所以有不同想法欢迎提出和评论。
2015-07-25 20:24:37 1928
原创 虚函数与多态小览
Bill又写文章来由了哇~~早就想好好搞清这个问题了,这是c++领域里面比较难搞定的一块知识点,而且最近在看设计模式,里面有涉及这块,之前学过的不用容易玩忘记,于是就干脆研究透一点,也好碰到、用到的时候不心慌~于是有了这篇文章。
2015-07-25 17:16:46 2047
转载 抽象工厂模式
又碰到好文章了,忍不住就想转,这种风格幽默清新的文章很有借鉴意义。转自:http://www.cnblogs.com/cbf4life/archive/2009/12/23/1630612.html抽象工厂模式9.1 女娲的失误 我们在上一章节讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类
2015-07-25 15:44:06 1411
转载 三极管的工作原理
一、很多初学者都会认为三极管是两个 PN 结的简单凑合(如图1)。这种想法是错误的,两个二极管的组合不能形成一个三极管。我们以 NPN 型三极管为例(见图 2 ),两个 PN 结共用了一个 P 区 —— 基区,基区做得极薄,只有几微米到几十微米,正是靠着它把两个 PN 结有机地结合成一个不可分割的整体,它们之间存在着相互联系和相互影响,使三极管完全不同于两个单独的 PN 结的特性。三极管在外加电压
2015-07-24 16:35:39 1397
转载 阻塞模式和非阻塞模式
好文得转~~~何为阻塞? 从该网络通讯过程来理解一下何为阻塞 : 在以上过程中若连接还没到来,那么 accept 会阻塞 , 程序运行到这里不得不挂起, CPU 转而执行其他线程。 在以上过程中若数据还没准备好, read 会一样也会阻塞。 阻塞式网络 IO 的特点:多线程处理多个连接。每个线程拥有自己的栈空间并且占用一些 CPU 时间。每个线程遇到外部为准备好
2015-07-23 18:27:32 1209
原创 sizeof小览
一道面试题迁出的探究我发现我已经形成一种习惯写来由了,以后看博客的时候可以让我回忆起为什么出现这个问题,我用什么方法解决的,既然形成习惯就让这个习惯保持下去吧。今天实验室师姐在看书,一处不解,是关于sizeof的,大家讨论此问题后,我一向信服做了才知道答案,于是有了这篇文章。但是只能叫小览,因为不可能总结完sizeof的用法,欢迎补充和讨论。
2015-07-23 00:01:38 4347 17
转载 程序编译后运行时的内存分配
太好的文章了,看到不得不转,转自:http://blog.sina.com.cn/s/blog_5420e0000101a0w1.html一、编译时与运行时的内存情况1.编译时不分配内存编译时是不分配内存的。此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误。2.运行时必分配内存运行
2015-07-22 10:00:13 3321
转载 volatile关键字的用法
代码编译环境:VS2012 Win32平台volatile是“易变的”、“不稳定”的意思。volatile是C/C++的一个较为少用的关键字,它用来解决变量在“共享”环境下容易出现的读取错误的问题。volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++在产生release版可
2015-07-22 09:38:29 1133
转载 VS2012 反汇编
在调试没有源码的文件时,我们可能要用到反汇编设计。一、VS反汇编方法1、调出反汇编窗口。2、调用寄存器窗口(只有在反汇编下才可见)如果在调试状态还是没有此菜单项,可试着以下操作:在VS中点击“工具”->“导入和导出设置”,选择“重置所有设置”,下一步,这时你可以保存当前设置或不保存,我觉得无所谓,下一步,选择“Visual C#开发设置”,“完成”。
2015-07-22 09:01:59 2471 1
转载 什么叫编译时和运行时
以前经常听说编译时和运行时的概念.但没太搞明白具体代表啥意思.后面花了点时间研究了下.总算知道个大概意思了.编译时编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,C#中只有CLR能识别的MSIL.另外还有啥链接器.汇编器.为了
2015-07-21 18:26:27 1101
转载 23种设计模式
目录创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例)结构型6. Adapter Class/Object(适配器)7. Bridge(桥接)8. Composite(组合)9. Decorator(装饰)
2015-07-21 17:30:18 1441
原创 sizeof(void*)
在vs中,Win32 和 X64 的结果不同: (1)Win32 平台结果是4 (2)X64平台结果是8只要是指针,不只是void*,包括char* 或 int*,结果都是一样。 原因就是指针存放的是内存地址,所以Win32 索引32位地址(4字节),X64索引64位地址(8字节) 最后给一段干坏事的代码,很简单,但是跟上面说的贴切,用 Win32 指令编译是只能吃掉4G,但是用 X64 就
2015-07-17 12:23:45 6845
原创 poj 2864
这题题目很长,不过很简单,男校友、女校友只是干扰,这题用一个flag就可以搞定,如果出现一个不到场的情况,当个校友的flag直接置为否就可以了
2015-07-15 17:58:18 1022
转载 经典CUDA教程
CUDA从入门到精通(零):写在前面在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择。还有不到一年毕业,怕是毕业后这些技术也就随毕业而去,准备这个暑假开辟一个CUDA专栏,从入门到精通,步步为营,顺便分享设计的一些经验教训,希望能
2015-07-15 16:18:43 2960
原创 把26个字母分成3组,有多少种分法
实验室的童鞋问到的问题答案:[ 3^26 - (2^26-2)*3 - 3 ] / A(3)3原理: 假设有3个球袋A、B、C, 3^26就是每个球都可能进入任一个袋,包括有空袋的情况;(2^26-2)代表两个袋有球的情况;减去的3代表只有一个袋有球的情况;最后/ A(3)3是说明3个球袋A、B、C没有顺序—-END—-
2015-07-15 16:04:08 3193 3
原创 补码与模
本篇来由昨天进行了反码、补码那些和浮点数的研究,但是还有一些问题遗漏,晚上跟寝室众基友讨论了,反而提出来一个很有意思的问题,于是有了本篇~~我们并不知道为什么有补码这个东西,只知道在计算机中广泛用补码存储,不知道为什么叫“补”码。
2015-07-14 08:17:35 16182 4
原创 浮点数原理探究
今天听到实验室有人问道浮点数的实现机制,之前刚好研究过原码、反码、补码、移码的关系,而这类问题很底层,一般容易忽视。干脆打破沙锅问到底,彻底搞清楚这个问题并留下证据,于是就有了这篇博文。
2015-07-13 17:41:30 3308
原创 int i=1,j=2; int k=i+++j;
因为运算符优先级为++大于+所以第二条语句应该是k=(i++)+j分解为下面的步骤1.i+j;(由于i++是先使用i值在表达式中进行运算,再自加1)2.k=第1步的结果3;3.i++;(i从1自加为2)这样,再深究一点:为什么 j=++i+++i+++i 输出j是10?j=(++i)+(++i)+(++i)=(((++i)+(++i))+(++i))
2015-07-09 17:22:24 5982 1
原创 poj 2665
直接贴代码:#include using namespace std;int main(){ int l,m,start,end; while (cin>>l>>m) { if(0 == l) break; ++l; for (int i=0;i<m;++i) { cin>>start>>end; l -= (end-start+1); }
2015-07-09 17:16:48 1108
原创 poj 2664
没有什么特别好的方法优化,最好的就是把结果存储在数组里面,通过数组下标索引,用空间换时间直接上代码:#include using namespace std;int choice[102]; //Freddie's choiceint main(){ int k,m,c,r; int flag; //标记是否合格,必须存在,即使提前知道不合格,也需要把输入完毕 int
2015-07-07 17:49:28 960
原创 哈夫曼树
很奇葩的哈夫曼树实现~~但是OJ还是交不了,因为哈夫曼树建树的方式不唯一只是记录一下,不建议这么写的#include#include using namespace std;const double eps = 1e-6;vector v;struct huff{ double value; huff* left; huff* child_l; huff* ch
2015-07-06 23:18:35 958
原创 页面置换算法
本来是一个师妹提的问题,顺便就把这个更加巩固一下,经典的页面置换算法#include#include#include#define INVALID -1#define TRUE 1#define FALSE 0using namespace std;struct page //页面控制块结构{ int page_number; //页面的页号,用来记录该页面在内存中对应的页面
2015-07-06 23:16:15 1115
原创 "n\x45y\123\t"长度
字符串长度。。。这种老生常谈的问题还是有很多新考法求"n\x45y\123\t"长度,答案是6#include using namespace std;int main(){ cout<<sizeof("n\x45y\123\t")<<endl; cout<<"\x45"<<" "<<sizeof("\x45")<<endl; cout<<"\123"<<" "<<siz
2015-07-06 21:49:49 2589
原创 关于重载二义性
C++编译器只根据函数参数表,也就是参数类型和个数进行重载版本的调用匹配,函数返回值不顶用另外,函数默认参数时会产生二义性,代码必须这样调用才是对的。#include using namespace std;int max(int a,int b){ return a<b?b:a;}int max(int a,int b,int c=0){ cout<<"c =
2015-07-06 21:43:55 1472
转载 《参禅与悟道》——浅谈人生
转载自CSDN赵4老师,赵老师应该是一个相当有资历的程序员了,我在很多CSDN帖子里面看到他的身影,看他的回帖获益匪浅这篇是赵老师的一些感悟吧,转载自http://blog.csdn.net/zhao4zhong1/article/details/2452128思考一下这个问题,知识层面:从小学到初中,再到高中、大学、硕士、博士、院士、诺贝尔奖获得者。财富层
2015-07-06 15:02:09 1344
翻译 inline函数的用处
比如 int g(int x) { return x + x; } int f() { return g(); } 这样f会调用g,然后g返回x + x给f,然后f继续把那个值返回给调用者。 如果g是inline的话。f会被直接编译成。 int f() { return x + x; } 相当于把g
2015-07-05 21:25:13 1229
原创 原码、反码、补码和移码其实很简单
计算机组成原理,看到书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码:反码:补码:移码:看完这些定义以后,我的脑袋瞬间膨胀到原来的二倍!这样变态的公式不管你记不记得住,反正我是记不住!其实没必要弄得这么麻烦,它们完全可
2015-07-05 21:14:13 3324 1
转载 文本文件和二进制文件的区别
讲的很透彻从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码: 00110101 00110110 00110111 00111000 ↓ ↓ ↓ ↓十进制码: 5 6
2015-07-05 17:06:56 970
原创 第一个makefile
刚刚写出了第一个最简单的makefile,更深刻的理解了Linux下make和编译链接的原理,例子很简单edit : main.o MakeAdd.o cc -o edit main.o MakeAdd.omain.o : main.c makeAdd.h cc -c main.cMakeAdd.o : MakeAdd.c cc -c MakeAdd.cclean : rm e
2015-07-05 15:24:06 1050
转载 Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make
2015-07-05 08:46:48 1291
转载 Linux makefile 教程 非常详细,且易懂
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比
2015-07-05 07:48:08 1262
转载 makefile基础实例讲解
转自于:http://blog.csdn.net/k346k346/article/details/44301895一、makefile简介定义:makefile定义了软件开发过程中,项目工程编译链、接接的方法和规则。产生:由IDE自动生成或者开发者手动书写。作用:Unix(MAC OS、Solars)和Linux(Red Hat、Ubuntu)系统下由
2015-07-05 00:30:58 1239
转载 指针函数与函数指针
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函
2015-07-03 15:21:45 790
【免费】很小的UML画类图工具很好用
2015-08-03
《算法导论原书第3版》(高清正宗中文版).pdf
2013-10-06
父类非虚函数,子类继承变成虚函数,会发生什么
2015-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人