2010年7月16日

Quake3中的绝对值函数

摘要: 下面是Quake3中的绝对值函数,很巧妙,先转换成整型,然后将符号为设置为0 阅读全文

posted @ 2010-07-16 09:45 前端风云志 阅读(685) 评论(2) 推荐(0)

2010年7月15日

C++默认参数

摘要: 函数的默认参数值,即在定义参数的时候同时给它一个初始值。在调用函数的时候,我们可以省略含有默认值的参数。也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值。void Func(int i = 1, float f = 2.0f, double d = 3.0){ cout << i << ", " << f << ", " << d << endl ;}int main(void){ Func() ; // 1, 2, 3 Func(10) ; // 10, 2 阅读全文

posted @ 2010-07-15 17:31 前端风云志 阅读(47044) 评论(3) 推荐(6)

如何使用数组参数

摘要: 如果一个函数以一维数组为参数,我们可以这样声明这个函数实际上,这三种形式是等价的,在使用数组做参数时,编译器会自动将数组名转换为指向数组第一个元素的指针,为什么呢?这要从参数的传递方式说起,参数有三种传递方式,按值传递,按指针传递,按引用传递,分别如下第一种方式传递的是a的一个副本第二种方式传递的是指向a的指针的一个副本第三种方式传递的是指向a的引用的一个副本既然都是副本,那么就存在拷贝到过程,但... 阅读全文

posted @ 2010-07-15 09:51 前端风云志 阅读(21878) 评论(2) 推荐(1)

2010年7月14日

n != n, n == -n

摘要: 以下内容来自VCK周星星-在此感谢,以下情况皆不考虑运算符重载什么时候n != n?float / double = NaN的时候,例子暂时还没找到什么时候 n == –n1. n = 0自不必说2. 设n为一个整型变量,那么当n取到该整型的负值最小值时,n == -n便成立了。为了避免类型提升,对负值做了一次类型转换。结果都输出equal 阅读全文

posted @ 2010-07-14 10:48 前端风云志 阅读(563) 评论(0) 推荐(0)

C中如何实现C++中的默认参数?

摘要: 先看一下C++中的默认参数实现如何在C中实现这种效果呢?目前只找到一种方法,宏定义,遗憾的是不能使用同一个函数名了 阅读全文

posted @ 2010-07-14 10:18 前端风云志 阅读(871) 评论(0) 推荐(0)

一个空类会生成哪些默认函数

摘要: 定义一个空类class Empty{};默认会生成以下几个函数1. 无参的构造函数Empty(){}2. 拷贝构造函数Empty(const Empty& copy){}3. 赋值运算符Empty& operator = (const Empty& copy){}4. 析构函数(非虚)~Empty(){}这些函数只有在第一次使用它们的时候才会生成,他们都是inline并且public的。如果想禁止生成这些函数,可以将它们定义成private函数,如果有很多类都有这种需求,那么可以定义一个基类,然后让其他类继承这个类。下面是来自boost库的代码,任何继承了该类的类,都不 阅读全文

posted @ 2010-07-14 08:57 前端风云志 阅读(5033) 评论(4) 推荐(1)

2010年7月11日

关于参数和返回值的常量性

摘要: 为什么要将参数或者返回值设置为常量什么时候参数应该是常量的?什么时候返回值应该是常量的?在回答这两个问题之前首先看一下为什么要将参数和返回值设置为常量?一句话,为了防止用户修改参数或者返回值大多数SetXXX()函数的参数都应该是常量性的,因为我们要设置某个值,不需要改变参数,只需将其赋值给要修改的... 阅读全文

posted @ 2010-07-11 15:14 前端风云志 阅读(1892) 评论(2) 推荐(1)

2010年7月10日

两道概率题-供大家周末把玩

摘要: 题目1.给定一个函数rand5(),该函数能等概率生成1-5之间的整数(包括1和5),如何用该函数等概率生成整数1-7?解法本以为很简单,做了以后才发现其实并不简单,这个题难就难在要求是等概率,贴出几个解法,供大家参考下面代码来自StackOverflow解法一代码解法二(更直观一些)代码2. 一个随机数生成函数f(),只产生数字1和0,生成1的概率是p,生成0的概率是1-p,如何利用该函数等概率... 阅读全文

posted @ 2010-07-10 18:24 前端风云志 阅读(4851) 评论(18) 推荐(2)

点到平面的距离公式

摘要: 准备知识平面的一般式方程Ax +By +Cz + D = 0其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点)向量的模(长度)给定一个向量V(x, y, z),则|V| = sqrt(x * x + y * y + z * z)向量的点积(内积)给定两个向量V1(x1, y1, z1)和V2(x2, y2, z2)则他们的内积是V1V2 = x1x2 + y1y2 + z1z2点到平面的距离有了上面的准备知识,则求点到直线的距离不再是难事,有图有真相如果法相量是单位向量的话,那么分母为1ORGE中的实现顺便看一下Ogre中的实现Code 阅读全文

posted @ 2010-07-10 12:55 前端风云志 阅读(257700) 评论(11) 推荐(16)

2010年7月9日

求24点

摘要: 24点是一种很流行的游戏,给定四个数,用加减乘除四种运算,每个数用一次,凑成24第一题3, 3, 8, 8 每个数只能用一次,只能用加减乘除第二题3, 3, 7, 7 每个数只能用一次,只能用加减乘除上面这两个题的关键是运用分数,答案如下第一题 8 /(3 -8 / 3)第二题(3 + 3 / 7)× 7第三题 1, 1, 1, 1 每个数只能用一次,可以用任何数学方法这个题做起来很纠... 阅读全文

posted @ 2010-07-09 18:55 前端风云志 阅读(802) 评论(2) 推荐(0)

2010年7月8日

空间两点间的距离

摘要: 空间两点间的距离公式推导,有图有真相 阅读全文

posted @ 2010-07-08 21:37 前端风云志 阅读(1051) 评论(0) 推荐(0)

2010年7月7日

为什么static成员必须在类外初始化

摘要: 为什么静态成员不能在类内初始化在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。class A{ private: static int count ; // 类内声明};int A::count = 0 ; // 类外初始化,不必再加static关键字为什么?因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。什么东西能在类内初始化能在类中初始化的成员只有一种,那就是静态常量成员。这样不行class A{ private: static int count = 0; // 静态成... 阅读全文

posted @ 2010-07-07 11:36 前端风云志 阅读(15402) 评论(5) 推荐(2)

2010年7月5日

拷贝构造函数

摘要: 什么是拷贝构造函数拷贝构造函数是一种特殊的构造函数,它的形式如下。struct Test{ Test() { } Test(const Test& other) // 拷贝构造函数 { cout << "Copy constructor" << endl ; }};什么情况下调用拷贝构造函数以下几种情况会调用拷贝构造函数。以一个对象初始化另一个对象函数以某个对象为参数函数返回某个对象初始化序列式容器的元素struct Test{ Test() { } Test(const Test& other) { ... 阅读全文

posted @ 2010-07-05 21:40 前端风云志 阅读(1255) 评论(0) 推荐(1)

正确使用STL-MAP中Erase函数

摘要: 一切尽在代码中。#include <iostream>#include <map>#include <string>using namespace std ;int main(void) { map<int, string> m ; m.insert(pair<int, string>(1, "abc")) ; m.insert(pair<int, string>(2, "def")) ; m.insert(pair<int, string>(3, "def&q 阅读全文

posted @ 2010-07-05 08:38 前端风云志 阅读(12761) 评论(2) 推荐(1)

2010年7月4日

C++ 初始化列表

摘要: 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。 构造函数的执行可以分成两个阶段 阅读全文

posted @ 2010-07-04 16:59 前端风云志 阅读(125378) 评论(41) 推荐(41)

2010年6月21日

算法-求二进制数中1的个数

摘要: 问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文中所有的算法。如果您上头上有更好的算法,或者本文没有提到的算法,请不要吝惜您的代码,分享的时候,也是学习和交流的时候。普通法我总是习惯叫普通法,因为我实在找不到一个合适的名字来描述它,其实就是最简单的方法,有点程序基础的人都能想得到,那就是移位+计数,很简单,不多说了,直接上代码,这种方法的运算次数与输入 阅读全文

posted @ 2010-06-21 15:00 前端风云志 阅读(143137) 评论(62) 推荐(44)

2010年6月7日

DirectX常见编译错误及解决办法

摘要: 常见的编译错误及解决办法1. fatal error LNK1104: cannot open file 'largeint.lib'直接删除对largeint.lib的引用即可2. fatal error CVT1100: duplicate resource. type:MANIFEST, na... 阅读全文

posted @ 2010-06-07 17:19 前端风云志 阅读(7297) 评论(2) 推荐(0)

用if语句表达区间分支

摘要: 常见的写法-显示列出所有条件简略法-后一个条件隐含包含了前一个条件,与前者相比,每个分支(最后一个除外)省了一次判断操作,但是可读性稍差,凡事有一利必有一弊呀! 阅读全文

posted @ 2010-06-07 15:34 前端风云志 阅读(2698) 评论(0) 推荐(1)

2010年6月5日

趣味编程-螺旋打印

摘要: 描述给定一个自然数n,打印1-n之间所有的数,要求:按螺旋形状顺时针打印。以前看到过这道题,说的是从外向内螺旋打印,而前几天又看到一个变种,由内向外打印。比之前的稍微难一点,趁周末闲着没事,总结一下。先上两幅图,大家看一下效果。由外向内打印由内向外打印这两种输出方法,其实大同小异,道理都差不多,会了一种,则另一种不难,先看从外向内打印的分析最简单且直观的方法就是k * k的二维数组存储数字,先将数字按照要求填入数组,然后输出整个数组即可分配数组对于n个数而言,令k = Ceil(sqrt(n)), 则分配k*k的二维数组即可。比如n = 5时,分配3*3的数组即可。如何填数起始点以左上角为起始 阅读全文

posted @ 2010-06-05 20:20 前端风云志 阅读(5853) 评论(11) 推荐(2)

2010年6月2日

VS使用技巧

摘要: 文本编辑按住Alt键并拖动鼠标进行竖向选择。您是否有过以下经历?将所有关键字从public该为private,从网页上copy代码到VS中,发现line number也被copy进来了。如果你以前是手动一个一个修改的,那么你应该记住这个窍门了,它会节省你很多时间。当前行编辑不必选择即可在光标所在行进行,复制,粘贴或剪切等操作不可否认,我身边很多人不知道这个窍门,你呢?乱码问题一是在VS的tools... 阅读全文

posted @ 2010-06-02 16:36 前端风云志 阅读(798) 评论(0) 推荐(0)

Windows命令-待完善

摘要: 批量结束进程taskkill /f /im excel.exe网络断开ipconfig /release重新连接ipconfig /renew文件操作拷贝将\\path目录下所有扩展名为.dat的文件拷贝到本机c:\test目录下,如果存在则覆盖。copy \\path\*.dat c:\test\ /y系统锁屏 Win + L回到桌面 Win + DIE关闭窗口 Ctrl + W 阅读全文

posted @ 2010-06-02 14:41 前端风云志 阅读(570) 评论(0) 推荐(0)

正则表达式-问号的四种用法

摘要: 原文符号因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\?有无量词问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次。非贪婪匹配贪婪匹配在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配string pattern1 = @"a.*c"; // greedy match Regex regex = new Regex(pattern1);regex.Match("abcabc"); // return "abcabc"非贪婪匹配在满足匹配时,匹配尽可能短的字符串,使用?来表示非贪婪匹配 阅读全文

posted @ 2010-06-02 09:18 前端风云志 阅读(109023) 评论(11) 推荐(13)

2010年6月1日

STL-set

摘要: 简介set是一种随机存储的关联式容器,其关键词(key)和元素(value)是同一个值。set之中所有元素互不相同。set是通过二叉查找树来实现的。创建创建一个空的set 1: set s0 ;创建一个带大于比较器的set, 默认是小于比较器less 1: set> s1 ;用数组初始化一个se... 阅读全文

posted @ 2010-06-01 22:23 前端风云志 阅读(12254) 评论(2) 推荐(3)

一道数论题目

摘要: 题目有100盏灯,编号1-100,初始时都是亮着灯。有一百个小孩,编号1-100。每盏灯对应一个开关,按下时灯亮,再按则灯灭。让这一百个小孩依次按开关,每个小孩只能按其编号倍数的开关。比如1号小孩可以按所有开关,2号小孩只能按编号为偶数的开关,以此类推。请问所有的小孩都按过开关以后(注意:每个小孩都必须按下所有他能按下的灯),哪些灯是亮着的?答案编号为平方数的灯是亮着的,1, 4, 9, 。。。 100。分析对于任意一盏灯的开关,如果被按了奇数次,那么最终它是亮着的,哪些灯的开关会被按奇数次呢?假设某一盏灯的编号为n,如果n有奇数个约数,那么这盏灯将被按奇数次。对于任意一个正整数n,它的约数都 阅读全文

posted @ 2010-06-01 18:01 前端风云志 阅读(687) 评论(7) 推荐(0)

2010年5月21日

关于清单文件

摘要: 来自网上,在此感谢作者。 那么到底什么是 .manifest 文件呢?他有什么用,以前为什么没有?后来,经过艰苦努力,终于得知,原来这一切都是Windows 的Assembly Manifest搞的鬼。这个东东的作用就是为了解决 以前windows上的“Dll 地狱” 问题才产生的新的DLL管理解决方案。大家知道,Dll是动态加载共享库,同一个Dll可能被多个程序所使用,而所谓“Dll 地狱”就... 阅读全文

posted @ 2010-05-21 10:50 前端风云志 阅读(2285) 评论(0) 推荐(0)

2010年5月20日

Visual Studio Auto-expand Information for DirectX 9

摘要: The original page of this article is: http://www.inframez.com/papers/d3d_autoexp.htm Visual Studio comes with a nice debugging feature called Auto-expand. With this feature, you are able to inspect im... 阅读全文

posted @ 2010-05-20 09:26 前端风云志 阅读(462) 评论(0) 推荐(1)

Error Checking in DX

摘要: from http://nexe.gamedev.net/directKnowledge/default.asp?p=Debugging When you're trying to find out why a specific function is failing - and the debug output isn't helping - you need to work with retu... 阅读全文

posted @ 2010-05-20 09:04 前端风云志 阅读(674) 评论(0) 推荐(1)

2010年5月19日

算法-求一个二进制数的长度

摘要: 任意给定一个32位无符号整数n,求其对应的二进制数长度。先举几个例子解释一下什么是二进制数的长度,比如8 = 1000,则长度是4, 7 = 0111,长度为3。所以一个二进制数的长度也即最高位1的下标值+1(下标从0开始)。题目很简单,下面提供三种方法普通方法递归法二分搜索+查表普通法移位+计数,每移位一次,计数器加1,直到n为0int BitLength(unsigned int n){ int c = 0 ; // counter while (n) { ++c ; n >>= 1 ; } return c ;}运算次数,如果n的二进制长度为k,那么共有k次循环,最多循环32 阅读全文

posted @ 2010-05-19 15:32 前端风云志 阅读(12145) 评论(15) 推荐(4)

2010年5月18日

解决代码中多余的空行

摘要: 有时候VS代码文件在网页中显示时会多出许多空行,比如上传到google code上的文件,有时候会出现这种情况,形如: if(n <= 0) return ; else { int i = x; int j = y ; 这是由于源文件的编码格式不当造成的,可以重新保存源文件为适当的编码格式,比如 UTF-8 with signature格式,方法如下 File-Save xxx as-... 阅读全文

posted @ 2010-05-18 22:22 前端风云志 阅读(846) 评论(0) 推荐(2)

Visual Studio中删除所有空行

摘要: 此文转载自博客园,原文链接:http://www.cnblogs.com/k-sharp/archive/2010/05/18/1738264.htmlEnter: Ctrl+H Find what: ^:b*$\n Replace with: [Empty] Look in: Current Document Find Option: Use Regular Expressions Click:... 阅读全文

posted @ 2010-05-18 22:12 前端风云志 阅读(7272) 评论(0) 推荐(3)

First Chance Exception

摘要: When you run DX program in debug mode and enable debug setttings in DX control panel, you may get the First Chance Exceptions, like the following: First-chance exception at 0x75ac9617 in Sura.exe: Mic... 阅读全文

posted @ 2010-05-18 17:15 前端风云志 阅读(5290) 评论(0) 推荐(1)

2010年5月17日

rendering order of skybox

摘要: if you program involve a skybox, you’d better render it first, since other object may need blending, if you render these objects before the skybox, you object will not show the correct order like code... 阅读全文

posted @ 2010-05-17 11:00 前端风云志 阅读(503) 评论(0) 推荐(0)

2010年5月7日

Build OGRE with CMake

摘要: Make sure you have downloaded, extracted and built the dependencies packageDownload CMake. You want the 'Win32 installer' release in the binary distribution sectionRun the CMake installer, install wherever you likeLaunch CMake via Start > Program Files > CMake 2.8 > CMakeIn the &quo 阅读全文

posted @ 2010-05-07 18:45 前端风云志 阅读(1104) 评论(0) 推荐(0)

2010年5月3日

声音走样

摘要: 用DirectSound播放声音时发生声音走样,和MediaPlayer播放的效果完全不同,搞了半天,发现原来是声音的采样频率不同所致// insert picture再查看了声音文件的属性以后,应该正确的填充WAVEFORMATEX结构,只有这样才能正确的播放声音文件WAVEFORMATEX wfx; // Set up WAV format structure. memset(&wfx... 阅读全文

posted @ 2010-05-03 22:33 前端风云志 阅读(501) 评论(0) 推荐(0)

2010年5月1日

注意变换的顺序

摘要: 注意一下三种变换的顺序 平移,旋转,缩放 下面的代码可以正常显示模型 // Set scalem_pWeapon->SetScale(0.01f, 0.01f, 0.01f) ; // Set positionm_pWeapon->SetPosition(0.0f, 15.0f, 0.0f) ; 而下面的代码却什么都不显示 // Set positionm_pWeapon->S... 阅读全文

posted @ 2010-05-01 20:53 前端风云志 阅读(604) 评论(0) 推荐(0)

关于D3D中的颜色

摘要: 1. 当模型自带颜色时,使用白色光照即可显示出模型的本色,如果禁用光照,那么模型就是黑色2. 当模型自带颜色时,要通过设置Material来设置模型的颜色,然后用白色光照之即可代码Code highlighting produced by Actipro CodeHighlighter (freew... 阅读全文

posted @ 2010-05-01 20:06 前端风云志 阅读(886) 评论(0) 推荐(0)

2010年4月28日

Terrain

摘要: 1. To create a flat terrain, just set the y coordinate to 0 2. The vertices in D3D must be defined in clockwise order. see the picture below so, when you specify the two triangles, you should say, (v... 阅读全文

posted @ 2010-04-28 16:22 前端风云志 阅读(617) 评论(0) 推荐(1)

2010年4月20日

Printf(“%d”)

摘要: What’s the output result of the following code snippet? char foo() { unsigned int a = 6; int b = -20; char c; printf("%d ", a + b); (a + b > 6) ? ( c 阅读全文

posted @ 2010-04-20 09:16 前端风云志 阅读(945) 评论(0) 推荐(0)

2010年3月28日

与二进制有关的几道面试题

摘要: 这个是在博客园的博问里面看到的1、现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无论购买多少个苹果(1-1000),都能由若干个盒子拼装而成(卖的时候是整个盒子卖,不能拆盒子的包装)解法:考虑1, 2, 4, 8这四个数,由这四个数可以组成1-15之间任意一个数,也即1,2, 4 ... 2n 可以组成1-2(n+1)-1之间所有的数。所以这十个盒子分别放入1, 2, 4, 8, 16, 32, 64, 128, 256, 489个苹果,即可组成1-1000内所有的数。2. 有1000瓶液体,无色无味,外表完全一样,其中一瓶是毒药,有10条警犬,警犬喝过毒药 阅读全文

posted @ 2010-03-28 21:36 前端风云志 阅读(1637) 评论(2) 推荐(0)

2010年3月27日

素数环-谈代码优化

摘要: 昨天在博问里面看到的一道算法题,原题如下:给出一个N(01//Isnprime?2boolIsPrime(intn)3{4for(inti=2;i*i1voidPrimeCircle(inta[],intn,intt)2{3if(t==n)4{5Output(a,n);//找到一个解6}7else8... 阅读全文

posted @ 2010-03-27 17:10 前端风云志 阅读(4694) 评论(6) 推荐(3)

导航

关注我

前端风云志