自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

借你一秒

沉心静气,平常心,做好小事方成大事。

原创 TCP/IP协议 三次握手与四次挥手

一、TCP报文格式        TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式        上图中有几个字段需要重点介绍下:        (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。        (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段

2015-10-28 12:32:07 1405 5

原创 STL中set底层实现方式? 为什么不用hash?

红黑树与hash table最大的不同是,红黑树是有序结构,而hash table不是。但不是说set就不能用hash,如果只是判断set中的元素是否存在,那么hash显然更合适,因为set 的访问操作时间复杂度是log(N)的,而使用hash底层实现的hash_set是近似O(1)的。然而,set应该更加被强调理解为“集合”,而集合所涉及的操作并、交、差等,即STL提供的如交集set_inter

2015-10-21 21:56:31 2512

原创 stl的sort和手写快排的运行效率哪个比较高?

STL的sort必然要比你自己写的快排要快,因为你自己手写一个这么复杂的sort,那就太闲了。STL的sort是尽量让复杂度维持在O(N log N)的,因此就有了各种的Hybrid sort algorithm。题主你提到的先quicksort到一定深度之后就转为heapsort,这种是introsort。每种STL实现使用的算法各有不同,GNU Standard C++ Library的实现就

2015-10-21 21:14:39 3378

原创 Deferred shading技术简介

参考文章:http://blog.sina.com.cn/s/blog_458f871201017i06.htmlDeferred shading是这样一种技术:将光照/渲染计算推迟到第二步进行计算。我们这样做的目的是为了避免多次(超过1次)渲染同一个像素。其基本思想如下:1、在第一步中,我们渲染场景,但是与通常情况下应用反射模型计算片断颜色不同的是,我们只是简单的将几何信息(位置坐标,法线向量,

2015-10-19 21:42:49 1307

原创 认识鬼火引擎

一、Irrlicht简介(1)概念Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台)、OpenGL 或它自己的软件着色程序,可以实现该引的完​全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。(2)

2015-10-14 12:48:48 6359

原创 四大开源3d游戏引擎探究

本人水平有限,只对于长久以来研究的几个经典3d游戏引擎的设计思想、程序架构和应用行深入剖析的结果与游戏开发同行分享,文档有不妥之处请指出,期待我们的共同进步。引擎名称:1.       orge(鬼怪)2.       Irrlicht(鬼火),3.       Nebula(星云)4.       klayGE(。。)前言:目前,开源3d游戏引擎已经趋近于商业化引擎标准,许多引擎在图形渲染,内存

2015-10-14 12:32:13 8548 1

原创 两道笔试题

“char a='\72'”是什么意思?这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT)

2015-10-09 18:46:49 1276 2

原创 main函数执行前、后再执行的代码

一、main结束 不代表整个进程结束  (1)全局对象的构造函数会在main 函数之前执行,          全局对象的析构函数会在main函数之后执行;          用atexit注册的函数也会在main之后执行。  (2)一些全局变量、对象和静态变量、对象的空间分配和赋初值就是在执行main函数之前,而main函数执行完后,还要去执行一些诸如释放空间、释放资源使用权等操作  (3)进程

2015-10-09 17:51:23 1433

原创 数组的深入理解之p=&(b+1)[5]

#includeint main() {char *p; char b[10]={1,2,3,4,5,6,7,8,9,10}; p=&(b+1)[5]; printf("%d",*p); }结果是7解析:对一个数组来说,a[n] = a + n 是个恒等式。其实在汇编里,它们就是一个东西。所以a = (b+1)[5] = (b + 1) + 5 = b + 6 = b[6] =

2015-10-09 17:31:04 1264 1

原创 switch中的break控制

#includeusing namespace std;int main(){ int i=10; switch(i){ case 9:i+=1; case 10:i+=1; case 11:i+=1; default:i+=1; } cout<<i<<endl; return 0;} 上面的结果是13;#includeusing namespace std;in

2015-10-07 19:31:38 1156

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