书法字典:https://www.shufadict.com

07 2010 档案

点在平面上的投影
摘要:应用:P在平面上的投影P'是平面上所有点中离P最近的点。如果给定平面外任意一点,求平面上离点P最近的点,则可用此法。 阅读全文

posted @ 2010-07-31 22:57 翰墨小生 阅读(17653) 评论(1) 推荐(1) 编辑

几道C语言题目
摘要:第一题下面代码的输出结果是?int main(){ int a[][3] = {1, 2, 3, 4, 5, 6}; int (*ptr)[3] = a; printf("%d, %d\n", (*ptr)[1], (*ptr)[2]); ++ptr; printf("%d, %d\n", (*ptr)[1], (*ptr)[2]); system("pause") ; return 0 ;}结果2, 35, 6分析ptr的类型是int(*)[3],那么*ptr的类型便是int[3],也就是int*(编译器会将数组名转换成指针),所以 阅读全文

posted @ 2010-07-16 11:21 翰墨小生 阅读(2061) 评论(6) 推荐(0) 编辑

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

posted @ 2010-07-16 09:45 翰墨小生 阅读(677) 评论(2) 推荐(0) 编辑

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 翰墨小生 阅读(46650) 评论(3) 推荐(6) 编辑

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

posted @ 2010-07-15 09:51 翰墨小生 阅读(21868) 评论(2) 推荐(1) 编辑

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 翰墨小生 阅读(537) 评论(0) 推荐(0) 编辑

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

posted @ 2010-07-14 10:18 翰墨小生 阅读(862) 评论(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 翰墨小生 阅读(5011) 评论(4) 推荐(1) 编辑

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

posted @ 2010-07-11 15:14 翰墨小生 阅读(1878) 评论(2) 推荐(1) 编辑

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

posted @ 2010-07-10 18:24 翰墨小生 阅读(4839) 评论(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 翰墨小生 阅读(256135) 评论(11) 推荐(16) 编辑

求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 翰墨小生 阅读(786) 评论(2) 推荐(0) 编辑

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

posted @ 2010-07-08 21:37 翰墨小生 阅读(1029) 评论(0) 推荐(0) 编辑

为什么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 翰墨小生 阅读(15375) 评论(5) 推荐(2) 编辑

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

posted @ 2010-07-05 21:40 翰墨小生 阅读(1246) 评论(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 翰墨小生 阅读(12739) 评论(2) 推荐(1) 编辑

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

posted @ 2010-07-04 16:59 翰墨小生 阅读(125195) 评论(41) 推荐(41) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
书法字典:https://www.shufadict.com
点击右上角即可分享
微信分享提示