cocos2d-x节点(b2GrowableStack.h)API
来源:互联网 发布:控制反转和依赖注入php 编辑:程序博客网 时间:2024/05/21 07:00
本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-x节点(b2GrowableStack.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
//可增长的协议栈,和出栈入栈操作
///cocos2d-x-3.0alpha0/external/Box2D/Common//可增长的协议栈,和出栈入栈操作#ifndef B2_GROWABLE_STACK_H#define B2_GROWABLE_STACK_H#include <Box2D/Common/b2Settings.h>#include <cstring>/// 这是一个可增长的后进先出栈它的初始容量为 N./// 如果栈大小超过初始容量,则在堆中增加堆栈的大小。template <typename T, int32 N>class b2GrowableStack{public:// 栈构造函数,初始化相关数据 b2GrowableStack() { m_stack = m_array; m_count = 0; m_capacity = N; }//栈析构函数,释放相关内存 ~b2GrowableStack() { if (m_stack != m_array) { b2Free(m_stack); m_stack = NULL; } }// 进栈操作// * 参数说明:element :进栈元素 void Push(const T& element) { //栈已满 if (m_count == m_capacity) { //获取栈头指针并保存到old中 T* old = m_stack; //将栈的容量扩充到原来的2倍 m_capacity *= 2; //申请内存,并保存到m_stack中 m_stack = (T*)b2Alloc(m_capacity * sizeof(T)); //将原来的内容整体拷贝到m_stack中去 std::memcpy(m_stack, old, m_count * sizeof(T)); if (old != m_array) { //释放old指向的内存 b2Free(old); } }//进栈,并将元素个数自加 m_stack[m_count] = element; ++m_count; }// 出栈操作// * 参数说明:(void)// * 返 回 值:返回最近进入栈的值 T Pop() { //验证元素个数的有效性 b2Assert(m_count > 0); //元素个数自减,并出栈 --m_count; return m_stack[m_count]; }//获取栈中元素的个数 int32 GetCount() { return m_count; }private: T* m_stack; //栈头指针 T m_array[N]; //辅助数组 int32 m_count; //元素的数量 int32 m_capacity; //栈的容量 };#endif
- cocos2d-x节点(b2GrowableStack.h)API
- cocos2d-x节点(cocos2d.h)API
- cocos2d-X 节点(CCNode.h)API
- cocos2d-X 节点(CCLayer.h)API
- cocos2d-X 节点(CCMenu.h)API
- cocos2d-X 节点(CCMenuItem.h)API
- cocos2d-X 节点(CCSprite.h)API
- cocos2d-X 节点(CCTexture2D.h)API
- cocos2d-X 节点(SpriteBatchNode.h.)API
- cocos2d-X 节点(CCSpriteFrame.h..)API
- cocos2d-X 节点(CCAnimationCache.h)API
- cocos2d-X 节点(CCCamera.h.)API
- cocos2d-X 节点(CCAction.h)API
- cocos2d-X 节点(CCActionManager.h)API
- cocos2d-X 节点(CCIMEDelegate.h)API
- cocos2d-X 节点(CCLabelAtlas.h)API
- cocos2d-X 节点(CCLabelBMFont.h)API
- cocos2d-X 节点(CCLabelTTF.h)API
- Hibernate模糊查询后台打印乱码[java]
- Android应用的彻底关闭
- 在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果
- cocos2d-x节点(b2Draw.h)API
- cocos2d-x节点(b2BlockAllocator.h)API
- cocos2d-x节点(b2GrowableStack.h)API
- 数据挖掘之关联规则
- join 和 where的执行顺序
- urllib2.urlopen超时问题
- SQL 简介
- cocos2d-x节点(b2Math.h)API
- cocos2d-x节点(b2Settings.h)API
- boost库之asio使用出错:error LNK2001,boost::system::generic_category
- cocos2d-x节点(b2StackAllocator.h)API