51CTO博客开发yarin's blog™
一、vector与list区别 vector为存储的对象分配一块连续的地址空间,因此对vector中的元素随机访问效率很高。在vecotor中插入或者删除某个元素,需要将现有元素进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。对于简单的小对象,vector的效率优于list。vector在每次扩张容量的时候,将
把char*转换为wchar_t* 用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法: char *CStr = "string to convert"; size_t len = strlen(CStr) + 1; size_t converted = 0; wchar_t *WStr; WStr=(wchar_t*)m
本文转载自: http://blog.sina.com.cn/s/blog_6a2061a20100n0or.html 碰撞筛选就是一个防止某些形状发生碰撞的系统。按照具体需求设置哪些物体跟那些物体发生碰撞,跟哪些物体不发生碰撞。 Box2D通过种群跟组索引支持碰撞筛选。 组索引比较简单,设置其shapeDef的groupIndex值即可,例如boxDef.filter
下面的代码片段定义了结构体A和B: struct A // 结构体A { int a; char b; &n
本文转载自: http://developer.51cto.com/art/201107/277376.htm const 是c++中常用的类型修饰符,但我在工作中发现,许多人使用它仅仅是想当然尔,这样,有时也会用对,但在某些微妙的场合,可就没那么幸运了,究其实质原由,大多因为没有搞清本源。故在本篇中我将对const进行辨析。溯其本源,究其实质,希望能对大家理解const有所
本文出自:http://hi.baidu.com/hins_pan/blog/item/515b0637f92499d2a3cc2b8a.html 第二大章主要讲的是vector和string这两种stl的使用。这两种stl都是continue-stored的方式来组织数据的,特别是vector更是提供了和数组非常相似行为。 两者都可以替换标准C语言中
一、c++ inline函数产生原因 由于函数调用会有一定的时间和空间方面的开销,特别是对于一些函数体代码不大但又被频繁调用的函数来讲,效率是很低的。 在C语言中,可以用宏函数来提高上面那种情况的效率,但宏函数有些缺点,它只是提供一个文本替换的功能,而不是一个真正的函数。所以在C++中引入了inline函数来解决这个问题,它会像宏函数一样在调用函数处用内联函数体的代码进行替换,还遵循函数的类型
1、在各种不同类型的精灵之间注册碰撞 考虑到你的游戏中拥有各种不同类型的精灵,但有时候我们只关心其中某两种类型之间的碰撞。 例如在超级玛丽中,马里奥(Mario)和关卡中的硬币、站点(CheckPoint,不知道咋翻译)、乌龟之间的碰撞。在这种情况下,让我们先来定义碰撞的回调函数吧。 你可以同时定义碰撞前后的回调函数,也可以只定义碰撞前,或者碰撞后。具体得按你游戏中需求来做,代码
用LevelHelper所提供的LHSprite是非常方便的,也非常好用。但有时候我们的精灵需要有更多的信息。 例如我们需要建一个玩家类,可能它存在生命值,魔法值等其他信息。这些信息都是LevelHelper所不能提供的。 在本文我将为大家演示一下创建一个自定义的LHSprite是多么的容易,so easy! 从这种方法,你可以很方便的创建任意你想要的LHSprite类型。 在进入下一步之
命名空间是c++提供的一种机制,可以有效地避免函数名污染。然后在应用时要十分注意:任何情况下都不应在头文件中使用“using namespace xxx”这样的语句。 这是为什么呢?来看下面的例子,我们在命名空间ABC和XYZ中分别定义了一个sort函数,如下所示: // 文件 abc.h namespace ABC  
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号