在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等基本数据类。

cocos2d-x3.0中数据类型vector,map、value相关推荐

  1. C++类中有如vector, map等容器类成员时如何编写构造函数

    假如一个类的成员函数如下: class A{int a;vector<int> v;map<int, int> m; }; 编写构造函数有三种方式: ①:默认构造函数 ②:容器 ...

  2. php 数据类型 map,es6中Set和Map的对比介绍(附代码)

    本篇文章给大家带来的内容是关于es6中Set和Map的对比介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Set 1.add()方法和size属性{ let list ...

  3. cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)

    原文地址:cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)作者:七贤林子 在cocos2d  0.9及以下版本中,CCAnimation中可以使用animationWit ...

  4. JDBC 2.0中的高级数据类型

    JDBC 2.0中提供了对SQL3标准中引入的新的数据类型,如Blob(binary large object).Clob(character large object).Array 对象.REF(对 ...

  5. [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)...

    首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: C++ Code  1 2   template < class _Ty, cla ...

  6. cocos2dx标准容器_cocos2dx的模板容器简单使用(Vector,Map,Value)

    在cocos2dxv3.0beta之前存在顺序性容器cocos2d::CCArray,和cocos2d::CCDictionary.可是在新版本号之后这两个容器都将被cocos2d::Vector和c ...

  7. java中list和map详解

    java中list和map详解 一.概叙 List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口, List下有ArrayList,Vector,LinkedL ...

  8. c++ list, vector, map, set 区别与用法比较

    List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]. Vector对于随机 ...

  9. list, vector, map, set 区别与用法比较

    List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]. Vector对于随机 ...

最新文章

  1. 操作系统知识点:全面
  2. 收藏 | 服务器和存储技术知识
  3. 共享单车哈罗王炸连出,OFO小心沦为炮灰
  4. Redis入门与数据类型介绍
  5. 控制台怎么查看错误的详细信息_js错误处理,quot;try..catchquot;
  6. php $_server[remote_addr];,php – 如何伪造$_SERVER [‘REMOTE_ADDR’]变量?
  7. DataView筛选出最新的十条数据的方法总结;
  8. 对付ring0 inline hook
  9. python自动化开发-[第十四天]-javascript(续)
  10. 【操作系统】实验四 主存空间的分配和回收
  11. php 设置空数组,声明空数组,填充和迭代问题-php
  12. wps文字表格制作拼音田字格模板_手把手教你用wps表格excel制作田字格书法练习字帖...
  13. 4、nerf(pytorch)
  14. 58同城iOS客户端Hybrid框架探索
  15. 【大数据笔记10】SparkStreaming——流式计算
  16. 打造完美自用Ubuntu 18.04 开发环境,解决qq微信网易云
  17. 海康web3.2无插件开发指北
  18. 微软校招编程题Beautiful String的状态机解法
  19. vulnstack内网渗透环境靶场-1 大全
  20. Surface RT2使用情况

热门文章

  1. python中字典按键或键值排序_[宜配屋]听图阁
  2. vue中 点击事件的写法_vue基础之事件v-onclick=函数用法示例
  3. fetch 不是xhr_fetch与XHR的区别与优势
  4. MATLAB保存数据为dat格式,[转载] Matlab中的数据以.txt或.dat格式保存
  5. java cas并发_java并发之CAS
  6. graphpad7.04多组比较p值_R语言缺失值处理(MICE/Amelia/missForest/Hmisc/mi)
  7. linux lsof
  8. linux 后台运行nohup与
  9. python signal
  10. 编程语言对比 迭代器