cocos2d::Vector与std::vector

今天发现cocos2d::Vector与std::vector的一个区别:

cocos2d::Vector<int> cocosvector;//错误,首先这里<T>类型受到了限制必须是 cocos2d::Ref*类型,cocos2d::Vector<int>这样写编译错误

这是因为 cocos2d::Vector 的pushBack()和erase做了引用计数的 retain()和release(),


std::vector<Sprite*> stdVector;//正确

cocosvector.at(0) = Sprite::create("");//编译错误,cocos2dx::Vector的at()方法返回的是一个const

stdVector.at(0) = 2;//编译通过;std::vector中的at(0方法返回的是一个左值对象

不知道cocos的作者为什么这样设计,

总感觉这一点不好哎╮(╯▽╰)╭

这也就是为什么cocos2d::Vector<cocos2d::Vector<T>>这样嵌套也不行,

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...