请问一下,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
学习了
Vector<Sprite*> vec1(5);
这种创建方式是否属于使用栈方式创建丫?
— 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的容器。。。这几篇真不错的科普帖啊

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


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);
}
马克好文 