【amazing cocos2d-x 3.0之八】数据结构Map

cocos2d-x 3.0引入了Map数据结构,替代即将废弃的CCDictionary。Map基于unordered_map,提供快速的键值对存储,时间复杂度为O(1)。本文将介绍Map的基本使用,包括创建容器、添加对象、取出元素及更多功能。
摘要由CSDN通过智能技术生成

1. 简介


值得注意的是,在v3.0 beta中除了加入Vector外,还加入了Map。定义在"COCOS2DX_ROOT/cocos/base"的"CCMap.h"头文件中。

template <class K, class V>
class CC_DLL Map;
cocos2d::Map<K,V>是使用std::unordered_map作为底层结构的关联式容器。而std::unordered_map是一个存储值对的关联式容器,它可以通过它们的键快速检索对应的值。使用unordered_map,键通常是唯一的,而值则与这个键对应。

在unordered_map内部,元素是无序,它们是根据键的哈希值来存取的,存取的时间复杂度是常量,超级快。

在cocos2d-x v3.0 beta之前,使用的是另外一种顺序式容器cocos2d::CCDictionary,不过它很快将被废弃。所以在以后的使用中,应该尽量使用cocos2d::Map而不是cocos::CCDictionary。


2. 基本使用


(1)创建容器

先创建两个精灵

auto sp1=Sprite::create("CloseNormal.png");
sp1->setPosition(Point(100,100));
this->addChild(sp1,1);

auto sp2=Sprite::create("CloseSelected.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值