天天看點

cocos2d-x3.0中資料類型vector,map、value

在3.0中,已經不再使用以前的ccarray,ccdictionary,ccint等從以前的oc繼承過來的資料類型,轉而加入了自己的資料結構,更加符合c++的開發習慣和思考模式,其中就包括了vector,map和value這三種。今天剛好自己研究了相關的源代碼,可以結合分析下。

vector就相當于以前的ccarray,對c++的vector做了适當的包裝,在一些指派,釋放等相關操作加入了引用計數相關的記憶體釋放操作,使得我們在使用不再需要自己添加retain,release,autorelease等方法。在諸如與所添加對象相關的如insert,push_back,構造函數中加入了retain()方法,而在與删除對象相關的的popback,erase,析構函數等方法中加入release方法,進行計數的減1。進而即能夠利用c++标準庫的vector帶來的使用便利和效率提升,更加符合c++開發者的習慣,也滿足了對與記憶體管理的需要,減少了記憶體洩漏的可能性。

map相當于ccdictionary,由于map采用的pair作為底層的結構,固為鍵值對的形式存在,其中包含了一些關于鍵值的操作。

value相當于以前的ccint、ccfloat、ccchar等基本資料類。

繼續閱讀