内容会持续更新,有错误的地方欢迎指正,谢谢!

1.数组:需处理的元素个数确定并且需使用下标时可以考虑,不过建议用泛型List
优点:数组在内存中是连续存储的,索引和修改的速度都非常快
缺点:插入和删除很慢,长度开辟过长易造成内存浪费,长度开辟过短易造成内存越界

2.List: List是泛型的,即List<T>,需处理的元素个数可以不确定,不存在装箱与拆箱,建议多用;而ArrayList:ArrayList list1 = new ArrayList(); ArrayList的元素属于 object 类型存在装箱与拆箱,很损耗性能。
List的底层数据结构就是数组,类似于STL里的Vector

List<string> list = new List<string>();
//新增数据
list.Add(“abc”);
//修改数据
list[0] = “def”;
//移除数据
list.RemoveAt(0);
//错误操作,因为数据的类型不是string
list.add(123);

3.字典Dictionary:底层是哈希表,是键值对容器,用于处理key/value键值对;而Hashtable:Hashtable openWith = new Hashtable(); 中key/value键值对均为object类型,所以Hashtable存在装箱和拆箱。而Dictionary是泛型的,不存在装箱和拆箱。Dictionary相对于HashTable,类似于List和ArrayList的关系。

Dictionary<string, string> theDic = new Dictionary<string, int>();  myDic.Add("abc", 123);  

4.链表:常用来维护、管理那些需要频繁产生、消除的游戏对象,比如:消除类游戏中需要消除的对象。

5.树: 1.场景管理中的四叉树;2.游戏UI里的菜单一般是分级的,一个主页面可以衍生出很多的子页面的时候,使用树来管理这些菜单是很合适的做法。

6.图: A*寻路算法、DFS、BFS

7.栈:使用递归就间接地使用了栈

8.队列:游戏中做任务:哪个任务先接到就把那个任务排在前面,即先进先出;还有优先级队列,想哪个任务报酬多的就先做哪个任务。

游戏开发中常用的数据结构相关推荐

  1. 游戏开发中常用的数据结构和算法

    转载Loving_初衷 前言 时间流逝,物是人非,就好像涌动的河流,永无终焉,幼稚的心智将变得高尚,青年的爱慕将变得深刻,清澈之水折射着成长. ----------<塞尔塔传说> PS:为 ...

  2. 游戏开发中常用的设计模式 【game design patterns】

    单例模式(Singleton Pattern):用于确保在游戏中只存在一个实例,例如游戏管理器(Game Manager)或资源管理器(Resource Manager). 工厂模式(Factory ...

  3. (转载)Unity3d开发中常用的数据结构总结与分析

    来到周末,小匹夫终于有精力和时间来更新下博客了.前段时间小匹夫读过一份代码,对其中各种数据结构灵活的使用赞不绝口,同时也大大激发了小匹夫对各种数据结构进行梳理和总结的欲望.正好最近也拜读了若干大神的文 ...

  4. 游戏开发中常用的设计模式

    使用设计模式来提高程序库的重复利用性是大型程序项目开发必须的.但是在"四人帮"的设计模式概述中提到了23种标准设计模式,不但难以记住,而且有些设计模式更多的适用于应用程序开发,对游 ...

  5. 游戏开发中常用的算法

    内容会持续更新,有错误的地方欢迎指正,谢谢! 1.与数组相关的算法: 快速排序(分治思想的应用):不是任何情况都适用,数据量小的话,还不如冒泡快,但快排的确很优秀. 堆排序:可用于做游戏排行榜前多少多 ...

  6. 游戏开发中常用的算法1(20道题一篇文章)

    一.快速排序算法 步骤1:选取一串数字中的中心轴 步骤2:将大于中心轴的数字放在右边 步骤3:将小于中心轴的数字放在左边 步骤4:分别对左右两个序列重复前三步操作 public class Quick ...

  7. 游戏开发中常用的几何之,两个线段是否相交

    游戏中判断两个线段是否相交的重要依据是根据向量的叉乘判断,所以不熟悉叉乘的意义的可以去看看叉乘的定义和几何意义 相交又分为两种情况,平行相交和非平行相交: 1:先说说平行相交,如果两个向量平行必然满足 ...

  8. 游戏开发中常用的数学知识---矩阵(一)

    在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵.这一概念由19世纪英国数学家凯利首先提出. 矩阵是高等代数学中的常见工具,也常见于统计分 ...

  9. 【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结

    本文由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/78884513 导读 这是一篇1万3千 ...

最新文章

  1. 搜索引擎利用机器学习排序
  2. php过滤提交数据 防止sql注入***(8)
  3. PB 级大规模 Elasticsearch 集群运维与调优实践
  4. leetcode 1833. 雪糕的最大数量
  5. LeetCode 网易-2. 古老的游戏机
  6. ubuntu添加环境变量PATH
  7. linux 解压缩指令
  8. java servlet ajax_javaweb中ajax请求后台servlet(实例)
  9. ocr原理 oracle,Oracle技术之RAC Voting disk和OCR的管理
  10. Bodymovin插件的使用
  11. 全球新冠疫情可视化图表制作
  12. 深信服虚拟服务器设置ip,深信服网关怎么设置端口映射
  13. 仿淘宝头像上传功能(三)——兼容 IE6 浏览器。
  14. 今天拿到软件设计师证书
  15. 镜像电流源特点_镜像电流源原理及其应用电路.pdf
  16. 基于肤色高斯概率模型的人脸检测
  17. H5新特性 - 新增标签
  18. 【知识图谱】——8种Trans模型
  19. README.MD · 008期
  20. LED点阵-第1季第8部分-朱有鹏-专题视频课程

热门文章

  1. 【MM 配额管理】Quota Arrangement 配额管理
  2. 晶圆键合机和晶圆解键合机
  3. 压强与浮力·复习整理
  4. 5.DIY可视化-拖拽设计1天搞定主流小程序-公告管理
  5. Hadoop与NoSQL正迅速融企业生产环境
  6. Maven报错 Error running ‘ [install]‘:No valid Maven installation found.maven不能用
  7. v3特约商户进件-Java版本
  8. LCD1602A接线图
  9. RTP库jrtplib介绍
  10. 通用高校排课算法研究