遊戲開發中常用的資料結構

2021-08-18 02:13:26 字數 1346 閱讀 3921

內容會持續更新,有錯誤的地方歡迎指正,謝謝!

1.陣列:需處理的元素個數確定並且需使用下標時可以考慮,不過建議用泛型list

優點:陣列在記憶體中是連續儲存的,索引和修改的速度都非常快

缺點:插入和刪除很慢,長度開闢過長易造成記憶體浪費,長度開闢過短易造成記憶體越界

2.list:list是泛型的,即list,需處理的元素個數可以不確定,不存在裝箱與拆箱,建議多用;而arraylist:arraylist list1 = new arraylist();arraylist的元素屬於 object 型別存在裝箱與拆箱,很損耗效能。

list的底層資料結構就是陣列,類似於stl裡的vector

list

list = new

list

();//新增資料

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 thedic = new dictionary();  mydic.add("abc", 123);
4.鍊錶:常用來維護、管理那些需要頻繁產生、消除的遊戲物件,比如:消除類遊戲中需要消除的物件。

5.樹:1.場景管理中的四叉樹;2.遊戲ui裡的選單一般是分級的,乙個主頁面可以衍生出很多的子頁面的時候,使用樹來管理這些選單是很合適的做法。

6.圖:a*尋路演算法、dfs、bfs

7.棧:使用遞迴就間接地使用了棧

8.佇列:遊戲中做任務:哪個任務先接到就把那個任務排在前面,即先進先出;還有優先順序佇列,想哪個任務報酬多的就先做哪個任務。

STL中常用資料結構

stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...

STL中常用資料結構

stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...

資料結構中常用演算法

排序常用的演算法有 插入演算法 直接插入演算法 折半插入演算法 希爾演算法 選擇演算法 簡單選擇演算法 堆排序演算法 快速演算法 氣泡排序 快速排序演算法 以下程式給出了各種演算法的實現,其介面為void sort int array,int len 每個檔案實現乙個演算法,最後和main.c檔案編...