cocos3 vector

先说Vector吧。
如果说C++的vector容器怎么用,如果我说太多肯定一下子就暴露了我菜鸟的身份。所以呢,在这里不过多阐述,也请大神绕路。
所以,还是回到Vector的使用问题上吧。该怎么用?既然Vector是替代了Array,那就拿Array 和Vector进行对比吧。

下面我就以创建 Sprite 精灵对象的容器为例介绍吧
1、创建

先创建两个精灵:

view sourceprint?

auto sp1 = Sprite::create("CloseNormal.png");

sp1->setPosition(Point(100,100));

this->addChild(sp1,1);

 

auto sp2 = Sprite::create("CloseSelected.png");

sp2->setPosition(Point(100,200));

this->addChild(sp2,1);

创建容器

view sourceprint?

Alpha:

auto sp_array = Array::create();

beta:

Vector<Sprite*> sp_vec;

2、将创建好的精灵添加进容器中

view sourceprint?

Alpha:

sp_array->addObject(sp1);

sp_array->addObject(sp2);

 

beta:

sp_vec.pushBack(sp1);//和 堆栈 一样一样的

sp_vec.pushBack(sp2);

3、获得容器中的大小

view sourceprint?

Alpha:

int count = sp_array->count();

beta:

int count = sp_vec.size();

4、获得容器中的精灵,并让这些元素都做统一的动作

view sourceprint?

Alpha:

for(int i=0;i<sp_array->count();i++)

{

  auto sp = (Sprite*)sp_array->getObjectAtIndex(i);

  sp->runAction(MoveTo::create(0.2f,Point(100,100)));

}

beta:

for(int i=0;i<sp_vec.size();i++)

{

  auto sp = sp_vec.at(i);

  sp->runAction(MoveTo::create(0.2f,Point(100,100)));

}

5、删除容器中的精灵

view sourceprint?

//如果是要删除容器中最后一个精灵的话:

Alpha:

sp_array->removeLastObject();

beta:

sp_vec.popBack();

 

//如果是直接删除对象:

Alpha:

sp_array->removeObject(sp1);

beta:

sp_vec.eraseObject(sp1);

//如果是要删除容器中全部的对象:

Alpha:

sp_array->removeAllObject();

beta:

sp_vec.clear();

6、其他
”说破不值钱“,其实Vector也就那样啦,恩,那样...最后补充一些其他的用法:

view sourceprint?

//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

恩,时间不多,先写到这吧。昨晚才去了解beta里的Vector,如果有什么写错的地方或者用的不恰当的地方,敬请告知...

时间: 2024-10-21 12:51:15

cocos3 vector的相关文章

1.Cocos2dx 3.2中vector,ValueMap,Touch触摸时间的使用.iconv字符编解码

 Cocos2dx3.2以后使用Vector<T>代替了CCArray.案例如下: 头文件:T02Vector.h #ifndef __T02Vector_H__ #define __T02Vector_H__ #include "T32.h" class T02Vector : public Layer { public: CREATE_FUNC(T02Vector); //Cocos2dx3.2以后使用Vector代替了CCArray Vector<Sprit

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

初译 Support Vector Machines:A Simple Tutorial(一)

从本次开始我将开始尝试着逐章翻译一下 Alexey Nefedov的<Support Vector Machines:A Simple Tutorial>这本教材,这可是我们导师极力推荐的SVM教材,看了好久一直感觉一脸懵逼,索性开坑翻译一下吧,也当是加深理解,毕竟我也是一知半解,如果翻译的有不对的地方还望大佬们斧正,欢迎提意见,欢迎讨论. 嗯,就是这样. (一)Introduction 在本章节中将会介绍一些用于定义支持向量机(SVM)的基础的概念,这些概念对于理解SVM至关重要,假定读者了

Vector容器 和 iteration 迭代器

vector容器 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包含其他对象.一个容器中的所有对象都必须是同一种类型的. 使用vector之前,必须包含相应的头文件.#include <vector> using std::vector; vector是一个类模板(class template).模板允许程序员编写单个类或函数定义,这个类和函数定义可用于不同的数据类型上.

C++ vector 使用

看vector 的使用: #include "stdafx.h" #include <iostream> #include <vector> using namespace std; int main() { vector<long> v; for (long i=0;i<10000;i++) { v.push_back(rand()); } cout << "size = " << v.size()

Vector Tile

Mapbox Vector Tile Specification A specification for encoding tiled vector data. <?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/2000/svg" NS = "http://www.w3.org/2000/svg" />License The text of this specification is licens

vector,deque,list相关操作

1.vector的基本操作 (1).对动态数组元素的添加和删除.获取 代码如下: #include<iostream> #include<vector> using namespace std; //数组元素的添加和删除.获取 int main(void){     vector<int> v1;      v1.push_back(1);     v1.push_back(2);     v1.push_back(3);     cout<<"l

vector容器用法详解

vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化. vector类常用的函数如下所示: 1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const t& t):创建一个vector,元

C++使用vector

#include <iostream> #include <string> #include <vector> using namespace std; void show(vector<int> v) { for(auto v1 : v){ cout << v1 << endl; } } void show2(vector<int> v) { for(vector<int>::const_iterator v