自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (2)
  • 收藏
  • 关注

原创 《深入理解计算机系统》(1)

typedef unsigned char* byte_pointer;void show_bytes(byte_pointer start, int len){for (int i = 0; i {printf("%2x", start[i]);}cout}int _tmain(int argc, _TCHAR* argv[]){char* b

2014-06-03 23:03:48 1432

转载 指针数组和数组指针

指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4]     指针数组                      表示:数组a中的元素都为int型指针                    

2014-05-28 22:14:24 706

原创 看书小记9(《C专家编程》)

哈希表简单实现,练个手#include "stdafx.h"#include using namespace std;#define HASHSIZE 12typedef struct HashTable{int *elem;int count;}HashTable;int m = 0;void Print(HashTable*

2014-05-24 22:03:51 806

原创 看书小记8(《C专家编程》)

int setjmp(jmp_buf env);   void longjmp(jmp_buf env, int val);系统跳转函数 ,可以直接在函数之间跳转 (比goto 强大多了) 将上下文 ,就是cpu和内存的信息保存到env中 ,然后调用 longjmp的时候跳转到使用env中的信息 ,恢复上下文 。如果是第一回调用setjmp 它会返回 0,如果从longjmp

2014-05-21 22:57:17 803

原创 看书小记7(《C专家编程》)

Cache是位于CPU寄存器与内存之间的存储器,它的容量比内存小但交换速度快。Cache的工作原理1、读取顺序当数据从内存读入时,整行的数据(16~32字节)被装入Cache,如果程序具有良好的地址引用局部性(顺序浏览一个字符串),那么CPU以后对邻近数据的引用就可以从快速的Cache读取,而不用从缓慢的内存读取。典型情况下,主存的存取速度可能只有Cache的四分之一。CPU要读取

2014-05-18 21:43:54 818

转载 数据段、代码段、堆栈段、BSS段的区别

5个数据段       进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包含的

2014-05-17 22:10:58 600

原创 小记5.8面试

void Foo(int i){coutvoid Foo(int* i){coutvoid Foo(int** i){coutvoid Bar(int& i) // 别名{Foo(i); // 1int* j = (int*)&i;// j是指向i的指针,地址Foo(j); // 2Foo(*j); // *j = i,1Foo(&j);

2014-05-09 00:31:30 957

原创 看书小记6(《C专家编程》)

typedef不常见但值得一提的用途:1. 用typedef来定义与平台无关的类型。比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为:typedef long double REAL; 在不支持 long double 的平台二上,改为:typedef double REAL; 在连 double 都不支持的平台三上,改为:typedef

2014-05-03 02:02:41 1024

原创 看书小记5(《C专家编程》)

函数指针1. 函数与函数指针类型要匹配;2. 函数指针用来保存函数首地址,即可以通过该指针访问函数;3. 函数指针可以指向一类函数,而不是一个函数,即可以重新赋值。int maxNumber(int a, int b){return a > b? a: b;}void fileFunc(){ coutvoid editFunc(){

2014-05-01 23:37:55 786

原创 看书小记4(《C专家编程》)

日期与时间struct tm {        int tm_sec;     /* 秒 – 取值区间为[0,59] */        int tm_min;     /* 分 - 取值区间为[0,59] */        int tm_hour;    /* 时 - 取值区间为[0,23] */        int tm_mday;    /* 一个月中的日期

2014-04-30 00:48:00 1146

原创 看书小记3(《C专家编程》)

gets()不检查缓冲区空间,多出来的字符会覆盖堆栈原先的内容。fgets()的第二个参数说明最大读入的字符数。如果这个参数值为n,那么fgets()就会读取最多n-1个字符或读完一个换行符为止。两个条件满足任意一个结束。fgets()读取到换行符,就会把它存到字符串里,而不是想gets()那样丢弃它。fgets()的第三个参数说明读哪个文件。从键盘上读数据时,可以使用stdin(代表

2014-04-28 23:48:54 968

原创 看书小记2(《C专家编程》)

1.  NUL用来结束一个ACSII字符串, NULL表示空指针2. break语句跳出最近的那层循环语句或switch语句3. static: (1). 修饰局部变量局部变量存放在栈,生命周期随语句块结束而结束。static对局部变量修饰后,作用域不变,但生命周期持续到整个程序结束,并存放在静态数据区。用static修饰局部变量,只在初次运行时进行初始化,且只

2014-04-27 00:33:44 1196

原创 看书小记1(《C专家编程》)

#include "stdafx.h"#include using namespace std;void foo(const char **p){}void charFoo(const char *p){}int _tmain(int argc, char** argv){//foo(argv);char* p = NULL;charFoo(p)

2014-04-24 22:35:13 877

原创 cocos2d-x与lua用法整理

Cocos2d-x 2.20以上版本没有了创建模板,创建的方式改用了Python创建,方法如下:python create_project.py -project HelloWorld -package com.Panda.Game -language cpp若要创建lua工程,结尾的cpp改成lua然后创建出来的sln工程文件打开来,直接运行会发现已经是个成品了,有画面有

2014-01-05 17:54:44 2985

原创 Visual Studio:error MSB8020

状况如下:error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and t

2013-12-07 20:38:17 73099 12

原创 Unity不同平台生成中预处理的注意点

Unity3D的项目,这周吃亏在宏上了。大背景是项目需要在Unity中用Hudson自动生成不同平台的版本。程序设计语言的预处理的概念:在编译之前进行的处理。#if UNITY_WEBPLAYER            BuildTarget target = BuildTarget.WebPlayer;#elif UNITY_STANDALONE_WIN && UNITY_E

2012-09-09 00:24:28 19964

原创 C#删除单个文件或文件夹(权限修改)

工作后第一篇技术blog,抽象出一些小技术,记录下。删除单个文件直接用 File.Delete;删除文件夹下子文件夹及子文件用FileInfo和DirectoryInfo,根目录下先删文件,再递归进入子文件夹。注意权限不足导致的无法删除现象,删除前统一改成Normal属性。ClearSingleFile();ClearDirectory();    ///

2012-09-01 12:08:23 4411

原创 Effective C++读书笔记(28)

条款43:学习处理模板化基类内的名称Know how to access names in templatizedbase classes假设我们要写一个应用程序,它可以把消息传送到几个不同的公司去,消息既可以以加密方式也可以以明文(不加密)的方式传送。如果我们有足够的信息在编译期间确定哪个消息将要发送给哪个公司,我们就可以采用基于模板的解法:class CompanyA {pub

2012-04-20 23:44:20 883

转载 ubuntu11.10安装配置jdk

原帖地址:http://merrygrass.iteye.com/blog/1269807其中有一处错误用红色标识在下面了。ubuntu 11.10库里没有sun-java6-jdk,需要自行安装。因此,到Oracle网站下载了Java 6u31,然后就可以开始手动安装了。    $ sudo cp jdk-6u31-linux-i586.bin /usr/lib/jvm

2012-04-06 04:26:27 766

原创 Effective C++读书笔记(27)

条款41:了解隐式接口和编译期多态Understand implicit interfaces andcompile-time polymorphism面向对象编程以显式接口和运行期多态为中心。例如:class Widget {public:    Widget();    virtual ~Widget();    virtual std::size_t size()

2012-04-04 00:19:14 1064

原创 Effective C++读书笔记(26)

条款40:明智而审慎地使用多重继承Use multiple inheritance judiciously触及multiple inheritance (MI)(多继承)的时候,C++ 社区就会鲜明地分裂为两个基本的阵营。一个阵营认为如果single inheritance (SI)(单继承)是有好处的,multiple inheritance(多继承)一定更有好处。另一个阵营认为sing

2012-04-01 23:25:59 828

原创 Effective C++读书笔记(25)

条款38:通过复合塑模出has-a或“根据某物实现出”Model “has-a” or “is-implemented-in-terms-of”through composition复合(composition)是类型之间的一种关系,当某种类型的对象内含另一种类型的对象,便是这种关系。例如:classAddress { ... }; // 某人的住址classPhoneNumber

2012-04-01 00:11:14 955

原创 Java ME学习中(2)

昨天完全无代码,今天开始接触代码了……javax.microedition.midlet.MIDlet中有六个比较重要的函数:startApp、pauseApp、destroyApp都是自动调用的,还有notifyPaused(人工暂停)、notifyDestroyed(人工销毁)、notifyRequest(人工运行)。程序运行后,系统自动调用构造函数(之后无法调用)和s

2012-03-10 21:55:57 905

原创 Java ME学习中(1)

因为毕设要做移动平台上的普适计算,选了Java ME作为背景(之前有小量接触)。今天开始学习~第一步是环境搭建,所用参考书是《Java ME移动开发实例精讲》。首先是一些Java ME的体系介绍。Java SE,标准版,适用于界面程序、Java小程序和其他一些典型的应用;Java EE,企业版,适用于服务器端程序和企业软件的开发;Java ME,微型版,适用于小型设备、

2012-03-09 18:07:07 1443

原创 Effective C++读书笔记(24)

条款36:绝不重新定义继承而来的non-virtual函数Never redefine an inherited non-virtualfunction有如下代码:class B {public:    void mf();    ...};class D: public B { ... };虽然我们对B,D或mf一无所知,但面对一个类型为D的对象x:D x

2012-03-08 23:29:05 754

原创 十全数

包含0,1,2,3,4,5,6,7,8,9,十个数字的十位数称为“十全数”,如果某个“十全数”同时满足下列要求:(1)它能分别被1,2,3,4,5,6,7,8,9,10,11,12整除;(2)它与2004的和能被13整除。那么这样的“十全数”中最小的是多少?被10整除:末尾为0;被4整除,倒数第二位为偶数。然后从被11整除入手,0~9和为45,故奇数和与偶数和不可能相等

2012-03-02 17:52:08 3247

原创 一个十位数由0-9数字组成并前N位被N整除

题目:请将0123456789十个数字以特定的顺序排列,组成一个10位数ABCDEFGHIJ(每个数字只能使用一次),使得:1.第一位数字组成的整数可以被1整除2.第一、二位数字组成的整数可以被2整除3.第一、二、三位数字组成的整数可以被3整除4.第一、二、三、四位数字组成的整数可以被4整除......10.第一、二、三...十位数字组成的整数可以被10整除 分

2012-02-24 03:37:38 4846

原创 Effective C++读书笔记(23)

条款35:考虑virtual函数以外的其他选择Consider alternatives to virtual functions现在你正在写一个视频游戏,在游戏中为角色设计了一个继承体系。你决定提供一个成员函数healthValue,它返回一个表示角色健康状况如何的整数。因为不同的角色计算健康值的方法可能不同,将healthValue声明为 virtual似乎是显而易见的设计选择:c

2012-02-11 23:58:13 928

原创 Effective C++读书笔记(22)

条款34:区分接口继承和实现继承Differentiate between inheritance ofinterface and inheritance of implementationpublic inheritance是由两个相互独立的部分组成的:inheritance of function interfaces(函数接口继承)和 inheritanceof function i

2012-02-10 23:45:07 795

原创 Effective C++读书笔记(21)

昨天颓废了 今天*2条款32:确定你的public继承塑模出is-a关系Make sure public inheritance models “is-a”使用C++语言进行面向对象编程时最重要的规则就是:publicinheritance意味着"is-a"关系。如果令class D ("Derived") 从 class B ("Base") public继承,就是在告诉

2012-02-10 23:44:00 834

原创 Effective C++读书笔记(20)

条款31:将文件间的编译依存关系降至最低Minimize compilation dependencies betweenfiles假设你对一个类的实现进行了细微的改变。提醒你一下,不是类的接口,只是实现,仅仅是 private 的东西。然后你重建(rebuild)这个程序,在 Build上点击或者键入 make(或者其它等价行为),接着你突然意识到整个程序都被重新编译和连接!问题

2012-02-08 23:22:45 798

原创 Effective C++读书笔记(19)

条款30:透彻了解inlining的里里外外Understand the ins and outs of inlininginline函数看起来像函数,产生的效果也像函数,比宏好得多,而你却可以在调用它们时不招致函数调用的成本。实际上你得到的可能比你想的更多,因为避免函数调用的成本只是inline好处的一部分。当你 inline 化一个函数,编译器或许有能力对函数本体执行语境相关最优化。

2012-02-07 21:54:59 601

原创 Effective C++读书笔记(18)

条款29:为“异常安全”而努力是值得的Strive for exception-safe code假设我们有一个类,代表带有背景图像的GUI菜单。这个类被设计成在多线程环境中使用,所以它有一个用于并行控制(concurrencycontrol)的互斥体(mutex):class PrettyMenu {public:void changeBackground(std::istr

2012-02-06 19:38:13 572

原创 Effective C++读书笔记(17)

条款27:尽量少做转型动作(2)Minimize casting不要认为强制转换除了告诉编译器将一种类型看作另一种之外什么都没做,任何种类的类型转换(无论是通过强制转换的显式还是编译器添加的隐式)都会导致运行时的可执行代码。例如:    intx, y;double d = static_cast(x)/y; // x除以y,使用浮点数除法int到double的强制转换理所当然

2012-02-05 23:36:44 614

原创 Effective C++读书笔记(16)

条款26:尽可能延后变量定义式出现的时间Postpone variable definitions as long as possible只要你定义了一个带有构造函数和析构函数的类型变量,当控制流程到达变量定义时,你会承受构造成本,而当变量离开作用域时,你会承受析构成本。如果有最终并未被使用的变量造成这一成本,你就要尽你所能去避免它。不要认为自己不会定义一个不使用的变量。考虑下面这个函

2012-02-04 17:38:48 558

原创 Effective C++读书笔记(15)

条款25:考虑写出一个不抛异常的swap函数Consider support for a non-throwing swapswap是一个有趣的函数。最早作为STL的一部分被引入,后来它成为异常安全编程(exception-safeprogramming)的支柱,和用来处理自我赋值可能性的常见机制。因为 swap太有用了,所以正确地实现它非常重要,但是伴随它不同寻常的重要性而来的,是一系列

2012-02-03 22:59:31 719

原创 Effective C++读书笔记(14)

条款23:宁以non-member、non-friend替换member函数Prefer non-member non-friend functions tomember functions想象一个用来表示网页浏览器浏览器的类。这样一个类可能提供的大量函数中,有一些用来清空下载元素高速缓存区、清空访问过的URLs历史,以及从系统移除所有cookies的功能:class WebBrows

2012-02-02 21:54:56 558

原创 Effective C++读书笔记(13)

条款21:必须返回对象时,别妄想返回其referenceDon’t try to return a reference when youmust return an object一旦程序员抓住对象传值的效率隐忧,很多人就会一心一意根除传值的罪恶。他们不屈不挠地追求传引用的纯度,但他们全都犯了一个致命的错误:他们开始传递并不存在的对象的引用。考虑一个用以表现有理数的类,包含一个函数计算两个有

2012-02-01 23:00:15 707

原创 Effective C++读书笔记(12)

条款19:设计class 犹如设计typeTreat class design as type design在 C++ 中,就像其它面向对象编程语言,可以通过定义一个新的类来定义一个新的类型。作为一个C++开发者,你的大量时间就这样花费在扩张你的类型系统。这意味着你不仅仅是一个类的设计者,而且是一个类型的设计者。重载函数和运算符,控制内存分配和回收,定义对象的初始化和终结过程——这些全在你

2012-01-31 21:33:44 608

原创 Effective C++读书笔记(11)

条款17:让接口容易被正确使用,不易被误用Make interfaces easy to use correctly andhard to use incorrectlyC++ 被淹没于接口中。函数接口、类接口、模板接口。每一个接口都是客户与你的代码互动的手段。在理想情况下,如果使用某个接口而没有得到预期的行为,这个代码不该编译通过,反过来,如果代码可以编译,那么它做的就是客户想要的。

2012-01-30 22:34:41 687

最小生成树(Kruscal算法)

用Kruscal算法求出最小生成树,该程序经测试~

2009-12-23

两个链表求交集(链表基础练习)

输入两个链表并取其交集于其中之一链表中输出

2009-10-27

空空如也

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

TA关注的人

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