//创建一个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("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包含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());