创建容器
Vector<Sprite*> sp_vec;
将对象数据添加进容器中
sp_vec.pushBack(sp); //和 堆栈 一样一样的
获得容器中的大小
int count = (int)sp_vec.size(); //这里不是一定要强转类型,各人习惯,因为看不惯X-Code总是报警告
获得容器中的对象
for( auto& e : sp_vec)
{
e->runAction(MoveTo::create(0.2f,Point(100,100))); //这种for写法是C++ 11的新特性
}
删除容器中的对象
//如果是要删除容器中最后一个对象的话:
sp_vec.popBack();
//如果是直接删除对象:
sp_vec.eraseObject(sp);
//如果是要删除容器中全部的对象:
sp_vec.clear();
其他一些用法
//a 在容器中的任何一个位置插入对象:
sp_vec.pushBack(sp1);
sp_vec.pushBack(sp2);
//目前的情况是,sp1在容器的第一个位置,sp2在容器的第二个位置,这时候我们要将sp3放入第一个位置:
sp_vec.insert(0,sp3);//ok
//b 查找容器中的对象:
//1、假设不知道容器中是否有sp3这个精灵,这时候可以这样:
sp_vec.contains(sp3); //如果有,返回true,无返回false;
//2、已知容器中有sp3这个精灵,想获得它在容器中的位置:
int pos_int = sp_vec.find(sp3);
//上面的方法可以获得sp3的位置,但返回的其实是迭代器的地址,你得到的结果可能是45214等等,如果想获得正常需要的位置,可以这样:
int pos_int = sp_vec.find(sp3) - sp_vec.begin(); //ok