代码改变世界

More Effective C++ 基础议题(Basics)

2012-01-03 16:30 by x_feng, 249 阅读, 0 推荐, 收藏, 编辑
摘要:基础议题。是的,pointers(指针)、references(引用)、casts(类型转换)、arrays(数组)、constructors(构造函数)--再也没有比这更基础的议题了。几乎最简单的C++程序也会用到其中大部分特性,只要留心下面各条款的各项忠告,你将向着一个很好的目标迈进:你所编写的软件可以清楚地表现出你的设计意图。条款一:仔细区别pointers和referencespointers和references看起来很不一样(pointers用”*”和->操作符,references用“.”操作符),但是我们都知道他们似乎做着同样的事情,都是间接的参考其他对象,那么,何时使用 阅读全文

求点是否在三角形内

2011-09-06 23:37 by x_feng, 374 阅读, 0 推荐, 收藏, 编辑
摘要:问题:在一个屏幕上如何判断一次点击,在一个三角形的按钮内?解决方法:在编程之美上提供了2种方法,一种是求面积的方法,一种是点关系的矢量方法。其实两种方法的代码实现几乎相同,但考虑到效率问题,矢量法比较合适。在求面积的方法中用到了除法和开平方运算,矢量法却没有,但它有一个非常要注意的地方,即三角形的三个顶点必须是按逆时针顺序方向排列传入函数体。矢量法:如果一个点在三角形内,则按照逆时针方向,这个点都在3条边的左边。判断一个点D,是否在一条射线a,b的左边,可以通过a->b,a->D两个向量叉积的正负来判断,叉积为正D在ab的左边,叉积为0在射线ab上,否则在外。具体代码如下:#inc 阅读全文

转:Javascript继承机制的设计思想

2011-07-13 15:36 by x_feng, 154 阅读, 0 推荐, 收藏, 编辑
摘要:作者写的非常好,让人醍醐灌顶!本文转自:http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html作者: 阮一峰日期: 2011年6月 5日我一直很难理解Javascript语言的继承机制。它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承 阅读全文

html5 <canvas> 学习4步曲

2011-07-13 11:24 by x_feng, 273 阅读, 0 推荐, 收藏, 编辑
摘要:1,Basic usage:https://developer.mozilla.org/cn/Canvas_tutorial%3aBasic_usage2,绘制图形 Drawing shapes: https://developer.mozilla.org/cn/Canvas_tutorial%3aDrawing_shapes3,应用图像 Using images:https://developer.mozilla.org/cn/Canvas_tutorial%3aUsing_images4,运用样式与颜色:https://developer.mozilla.org/cn/Canvas_tut 阅读全文

C++ 函数对象剖析

2011-07-02 13:09 by x_feng, 304 阅读, 0 推荐, 收藏, 编辑
摘要:1,什么是函数对象 函数对象实质是一个实现了operator()括号操作符的类。 2,先来看看operator() 如果一个类类型被定义来表示一个操作时,则可以为这个类类型重载函数调用操作符,以方便调用这个操作。 #include <iostream>using namespace std;class absInt{public: int operator()(int val) { return ... 阅读全文

非递归遍历所有文件及目录:FindFirstFile,FindNextFile和FindClose

2011-06-30 23:48 by x_feng, 1902 阅读, 0 推荐, 收藏, 编辑
摘要:都说用这三个API遍历文件效率比较高,我查了些资料,把它们封装成一个类。#ifndef _WIN_FILEFINDENUM_H_#define _WIN_FILEFINDENUM_H_#include <iostream>#include <windows.h>#include <string>#include <vector>#include <queue>class Win_FileFindEnum{public: Win_FileFindEnum(string); void DoErgodicFile(string); ~Win 阅读全文

C++ Static

2011-06-30 23:04 by x_feng, 426 阅读, 1 推荐, 收藏, 编辑
摘要:1,static是干什么的 static是C\C++中常用的修饰符,可以用来修饰局部变量,全局变量以及函数,还有在类中的使用。static改变了变量的存储方式和可见性。2,static的作用主要有3点:1.扩展生存周期,2.限制作用域,3.唯一性。以下详细讨论。另:补充一些常识。一个程序占用的内存区一般分为如下5种情况:全局/静态数据区常量数据区代码区栈堆显然程序的代码存储在代码区中,而程序的数据则要根据数据种类的不同,存储在不同的内存区。全局/静态数据区:存储全局变量及静态变量(包括全局静态变量和局部静态变量)常量数据区:存储的是常量字符串等。栈:存储自动变量或者局部变量,以及传递的函数参数 阅读全文

select,poll与epoll的相关介绍和区别(转载)

2011-06-19 00:23 by x_feng, 367 阅读, 0 推荐, 收藏, 编辑
摘要:百度文库:http://wenku.baidu.com/view/0ea86ffdc8d376eeaeaa3198.html select()系统调用提供一个机制来实现同步多元I/O: #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int select (int n, fd_set *readfds, fd_set... 阅读全文

快速的4个数的全排列

2011-06-18 11:17 by x_feng, 1167 阅读, 0 推荐, 收藏, 编辑
摘要:这只是一个非通用的方法,对于计算4个数或5个数以下的全排速度比较快,但是5以上就有点麻烦。 分析:如求abcd的全排列,我们看看abcdabcd,由a开始扫a->bcd,a->cdab,a->dabc,只考察a后面的三个,重复的a去掉(黑体表示),然后再考虑逆转字符串dcbadcba,看看从a开始的:a->dcb,a->cbad,a->bdc(这里像循环一样)。 void perm(char *a... 阅读全文

C++异常

2011-06-17 21:02 by x_feng, 145 阅读, 0 推荐, 收藏, 编辑
摘要:呵呵,估计这是我最短的一篇博文了,勿怪! http://www.cnblogs.com/cvbnm/articles/1962020.html http://www.cnblogs.com/cvbnm/articles/1962034.html 阅读全文