美文网首页
cocos2d-x3.0新增的Vector类,cocos2d-x

cocos2d-x3.0新增的Vector类,cocos2d-x

作者: 一壶开心酒 | 来源:发表于2016-05-16 22:17 被阅读110次

bool HelloWorld::init()  {      //////////////////////////////      // 1. super init first      if ( !Layer::init() )      {          return false;      }        #pragma mark cocos2d-x3.0新增的Vector类      Vectorvec(10);

log("%s",vec.empty() ? "Vector为空":"Vector不为空");

#pragma mark pushBack函数将对象添加到Vector末尾

auto node1 = Node::create();

node1->setTag(1);

vec.pushBack(node1);

auto node3 = Node::create();

node3->setTag(3);

vec.pushBack(node3);

auto node5 = Node::create();

node5->setTag(5);

vec.pushBack(node5);

auto node7 = Node::create();

node7->setTag(7);

vec.pushBack(node7);

auto node2 = Node::create();

node2->setTag(2);

vec.pushBack(node2);

auto node4 = Node::create();

node4->setTag(4);

vec.pushBack(node4);

auto node6 = Node::create();

node6->setTag(6);

vec.pushBack(node6);

#pragma mark insert函数将对象插入到指定的位置

auto node8 = Node::create();

node8->setTag(8);

vec.insert(1,node8);

#pragma mark empty函数判断Vector是否为空,为空返回true,否则返回false

log("%s",vec.empty() ? "Vector为空":"Vector为不为空");

#pragma mark capacity函数返回当前存储空间的大小。

log("Vector.capacity(): %i",(int)vec.capacity());

#pragma mark size函数返回Vector中元素的数量。

log("Vector.size(): %i",(int)vec.size());

#pragma mark getIndex函数返回包含对象的索引

log("node1在Vector中的索引: %i",(int)vec.getIndex(node1));

log("node2在Vector中的索引: %i",(int)vec.getIndex(node2));

log("for循环: ");

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

#pragma mark at函数根据下标返回元素

log("取出对象并获取tag: %i",vec.at(i)->getTag());

}

#pragma mark contains函数判断Vector是否包含元素,包含返回true,否则返回false

log("%s",vec.contains(node1) ? "Vector包含node1":"Vector不包含node1");

#pragma mark reverse函数翻转Vector中的元素

log("reverse(翻转)之后: ");

vec.reverse();

for (auto& child : vec) {

log("取出对象并获取tag: %i",child->getTag());

}

#pragma mark swap函数根据下标交换Vector中的元素

vec.swap(0, 6);

log("swap(交换)之后: ");

for (auto& child : vec) {

log("取出对象并获取tag: %i",child->getTag());

}

#pragma mark C++标准库中的排序函数

std::sort(vec.begin(), vec.end(), [](Node* a, Node* b){

return a->getTag() < b->getTag();

});

log("sort排序之后: ");

for (auto& child : vec) {

log("取出对象并获tag: %i",child->getTag());

}

#pragma mark back函数返回Vector最后一个元素

vec.back()->setTag(9);

log("back之后最后一个元素的tag: %i", vec.at(vec.size()-1)->getTag());

#pragma mark popBack函数删除最后一个元素

vec.popBack();

log("popBack之后Vector.size(): %i",(int)vec.size());

#pragma mark erase函数删除索引为1的元素

vec.erase(2);

log("erase(2)之后Vector.size(): %i",(int)vec.size());

#pragma mark eraseObject函数从Vector中删除指定的元素

vec.eraseObject(node1);

log("eraseObject(node1)之后Vector.size(): %i",(int)vec.size());

#pragma mark clear函数清除Vector所有元素

vec.clear();

log("clear之后%s",vec.empty() ? "Vector为空":"Vector为不为空");

log("clear之后Vector.size(): %i",(int)vec.size());

return true;

}

结果展示

Vector为空

Vector为不为空

Vector.capacity(): 10

Vector.size(): 8

node1在Vector中的索引: 0

node2在Vector中的索引: 5

for循环:

取出对象并获取tag: 1

取出对象并获取tag: 8

取出对象并获取tag: 3

取出对象并获取tag: 5

取出对象并获取tag: 7

取出对象并获取tag: 2

取出对象并获取tag: 4

取出对象并获取tag: 6

Vector包含node1

reverse(翻转)之后:

取出对象并获取tag: 6

取出对象并获取tag: 4

取出对象并获取tag: 2

取出对象并获取tag: 7

取出对象并获取tag: 5

取出对象并获取tag: 3

取出对象并获取tag: 8

取出对象并获取tag: 1

swap(交换)之后:

取出对象并获取tag: 8

取出对象并获取tag: 4

取出对象并获取tag: 2

取出对象并获取tag: 7

取出对象并获取tag: 5

取出对象并获取tag: 3

取出对象并获取tag: 6

取出对象并获取tag: 1

sort排序之后:

取出对象并获tag: 1

取出对象并获tag: 2

取出对象并获tag: 3

取出对象并获tag: 4

取出对象并获tag: 5

取出对象并获tag: 6

取出对象并获tag: 7

取出对象并获tag: 8

back之后最后一个元素的tag: 9

popBack之后Vector.size(): 7

erase(2)之后Vector.size(): 6

eraseObject(node1)之后Vector.size(): 5

clear之后Vector为空

clear之后Vector.size(): 0

相关文章

  • cocos2d-x3.0新增的Vector类,cocos2d-x

    bool HelloWorld::init() { /////////////////////////////...

  • SparkMllib数据类型

    一.本地向量 有如下几个类: Vector(基类),DenseVector,SparseVector,Vector...

  • ★07.关于类模板

    简述 类模板:是类类型的模板,如:vector。 模板类:类模板的实例化,如:vector 。 类模板的模板参数无...

  • 矢量vector

    vector存储类对象: 输出结果: 存储类指针: 输出结果: 指向基类的vector用法: 输出结果:2010

  • vector类

    1.综述: vector类是一种动态数组,可以在运行阶段设置vector对象的长度,可以在末尾增加数据的长度,也可...

  • Collection-Vector

    jdk版本:1.8.0_77参考文档:jdk 1.8 docs Vector类图 Vector特点 Vector对...

  • Java多线程--并发数据结构

    一、并发List 1、Vector List类簇中ArrayList和Vector的主要区别就是Vector的大部...

  • vector

    vector构造函数 vector v;//采用模板实现类实现,默认构造函数 vector(v.begin(), ...

  • 2020-03-15

    vector类编写;运动;

  • 数据结构

    Vector:线程安全的ArrayList,所有方法加锁 CopyOnWriteArrayList:新增和删除方法...

网友评论

      本文标题:cocos2d-x3.0新增的Vector类,cocos2d-x

      本文链接:https://www.haomeiwen.com/subject/nxnbrttx.html