Vector用法小记

来源:互联网 发布:中美黑客大战知乎 编辑:程序博客网 时间:2024/06/06 05:01

创建容器

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  





0 0