Cocos2d-x3.0模版容器详解之一:cocos2d::Vector<T>

请问一下,Vector和Map怎么嵌套呀,他们都不继承自Ref的话

存储在栈上,因为你可以理解为Vector是栈上的,但是里面的所有元素都是在堆上的,所以不用担心栈满的情况。
移动语义:原先返回一个Vector是拷贝一个临时的Vector,然后在把这个临时的Vector再拷贝给你,然后再删除这个临时的Vector。
移动语义就是把这个临时的Vector直接丢给你,不再拷贝一份,也不删除这个临时的Vector,因为直接把他转换成你接收的这个变量了。

嵌套跟stl一样,模板嵌套,例如:Vector<Map<int,int>>

因为引用计数,Vector是强引用,当你需要使用强引用里面的元素时可以使用Vector。

当你想要处理原生类型集合的时候,用 cocos2d::Value 封装原生类型,然后用新的模版容器 cocos2d::Vector 和 cocos2d::Map<K,V> 组合它们。

求示例。

博文很赞 但楼上回复帖子 404

:2: :2: 学习了

Vector<Sprite*> vec1(5);

这种创建方式是否属于使用栈方式创建丫?:14:

— Begin quote from ____

引用第15楼abware于2014-05-03 10:31发表的 :
为什么不直接用std::vector ? http://www.cocoachina.com/bbs/job.php?action=topost&tid=199793&pid=942479

— End quote

同问啊

啊,现在才发现这好帖!
一直纠结怎么更好的使用STL的容器。。。这几篇真不错的科普帖啊
:2:

很好,很详细,能快速使用:2:

:2: :2: :2: :2:

:2: :2: :2: :2: :2: :2:

Vector 遍历移除的问题

Vector<Sprite *> vec;
for (int i = 0 ; i < 20 ; i++)
{
Sprite * spr = Sprite::create(“image/p.png”);
spr->setTag(i);
vec.pushBack(spr);
}

for (auto & obj : vec)
{
    Sprite * spr = obj;
    int key = spr->getTag()%3;
    if(key == 0)
        vec.eraseObject(spr);
}

http://www.cnblogs.com/xkfz007/archive/2012/08/17/2644061.html

找到了

马克好文 :2: