cocos2d-x 3.x学习之Vector常用函数

Vector常用函数
Vector<Node*>vec(10);
log("%s", vec.empty() ? "Vector0" : "Vector1");
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);
//insert函数将对象插入到指定的位置
auto node8 = Node::create();
node8->setTag(8);
vec.insert(1, node8);
log("%s", vec.empty() ? "Vector0" : "Vector1");
//capacity函数返回当前存储空间的大小
log("Vector.capacity():%i", (int)vec.capacity());
//size函数返回Vector中元素的数量
log("Vector.size():%i", (int)vec.size());
//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++){
//at函数根据下标返回元素
   log("取出对象并获取tag:%i", vec.at(i)->getTag());
}
log("增强for循环:");
for(auto& child:vec){
  log("取出对象并获取tag:%i", child->getTag());
}
//contains函数判断Vector是否包含元素,包含返回true,否则false
log("%s", vec.contains(node1) ? "Vector contain node1" : "Vector not contain node1");
//reverse函数翻转Vector中的元素
log("reverse翻转之后:");
vec.reverse();
for (auto& child : vec){
   log("取出对象并获取tag:%i", child->getTag());
}
//swap函数根据下标交换Vector中的元素
vec.swap(0, 6);
log("交换之后:");
for (auto& child : vec){
  log("取出对象并获取tag:%i", child->getTag());
}
//clear函数清除Vector所有元素
vec.clear();
log("clear清除之后%s", vec.empty() ? "Vector is enpty" : "Vector is not empty");
log("clear之后Vector.size():%i", (int)vec.size());

你可能感兴趣的:(cocos2d-x 3.x学习之Vector常用函数)