Cocos2dx中类库中Vector<T>容器的使用

来源:互联网 发布:利率敏感性缺口 数据 编辑:程序博客网 时间:2024/06/14 03:39

//创建一个Vector容器变量

Vector<Node*> vec(10);

 

// pushBack函数将对象添加到Vector末尾

auto node1 = Node::create();

node1->setTag(1);

vec.pushBack(node1);

auto node2 = Node::create();

node2->setTag(2);

vec.pushBack(node2);

 

// insert函数将对象插入到指定的位置

auto node3 = Node::create();

node8->setTag(3);

vec.insert(1,node8);//node3插入到下标为1的后面

 

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

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

 

// capacity函数返回当前存储空间的大小。

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

 

// size函数返回Vector中元素的数量。

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

 

// getIndex函数返回包含对象的索引

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

log("node2Vector中的索引: %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包含node1":"Vector不包含node1");

 

// reverse函数翻转Vector中的元素

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

vec.reverse();

for (auto& child : vec) {

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

}

 

// swap函数根据下标交换Vector中的元素

vec.swap(0, 6);

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

for (auto& child : vec) {

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

}

 

// 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());

}

 

// back函数返回Vector最后一个元素

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

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

 

// popBack函数删除最后一个元素

vec.popBack();

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

 

// erase函数删除索引为1的元素

vec.erase(1);

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

 

// eraseObject函数从Vector中删除指定的元素

vec.eraseObject(node1);

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

 

// clear函数清除Vector所有元素

vec.clear();

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

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

原创粉丝点击