数据结构
游戏中常用的一些数据结构
game_helloworld
游戏开发
展开
-
hash map 自定义实现
我们正常定义的 [键-->值] 类型数据容器 大多数都是用std::map, 或者std::std::unordered_map, 但是有些时候对其操作不太方便,特别是嵌套调用的时候进行添加删除操作,比如说:我有一个技能队列用的是std::std::unordered_map,当我们在帧循环中遍历技能队列数据,执行技能操作的时候,触发了一个新的技能或者删除了一个技能,这个时候在遍历的队列内部这个样就会出错:// 错误示例:std::unorder_map<int, skill_info&原创 2022-04-15 16:57:37 · 500 阅读 · 0 评论 -
字节流和字节顺序(用于序列化和反序列化)
介于要设计游戏服务器和客户端逻辑,现在需要普及一下我在代码中用到的一些数据结构,这一篇讲一下字节流--- ByteStream。字节流就是自己实现的一个数据存储区,可对基础数据和其他特定数据进行序列化和反序列化。用与玩家数据或者其他服务器数据的落地保存。也可用于客户端和服务器,、服务器和服务器之间的通信。里面也添加了对字节顺序的处理逻辑。如果是通信的数据包可以启动字节顺序转换。需要注意的一点是我对输入的每一个元素只拷贝元素内容,没有存储其类型,所以在字节流输出的时候没有办法做类型校验,这样对于结构经原创 2022-04-10 12:08:25 · 3786 阅读 · 0 评论 -
C语言链表
很多时候需要用到C语言方式的内置链表,根据处理类型多重交叉链接, 非常方便,这里贴一下链表实现。// 内置链表#ifndef CoreLink_h__#define CoreLink_h__// 链表struct LinkNode{ LinkNode* next; LinkNode* front;};// 初始化链表#define InitLink(root) ((root)->next = (root)->front = (root))// 添加到结尾#.原创 2022-04-08 18:06:26 · 1303 阅读 · 0 评论