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函數(shù)將對(duì)象添加到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函數(shù)將對(duì)象插入到指定的位置
auto node8 = Node::create();
node8->setTag(8);
vec.insert(1,node8);
#pragma mark empty函數(shù)判斷Vector是否為空,為空返回true赡译,否則返回false
log("%s",vec.empty() ? "Vector為空":"Vector為不為空");
#pragma mark capacity函數(shù)返回當(dāng)前存儲(chǔ)空間的大小仲吏。
log("Vector.capacity(): %i",(int)vec.capacity());
#pragma mark size函數(shù)返回Vector中元素的數(shù)量。
log("Vector.size(): %i",(int)vec.size());
#pragma mark getIndex函數(shù)返回包含對(duì)象的索引
log("node1在Vector中的索引: %i",(int)vec.getIndex(node1));
log("node2在Vector中的索引: %i",(int)vec.getIndex(node2));
log("for循環(huán): ");
for(int i = 0;i < vec.size();i++){
#pragma mark at函數(shù)根據(jù)下標(biāo)返回元素
log("取出對(duì)象并獲取tag: %i",vec.at(i)->getTag());
}
#pragma mark contains函數(shù)判斷Vector是否包含元素蝌焚,包含返回true裹唆,否則返回false
log("%s",vec.contains(node1) ? "Vector包含node1":"Vector不包含node1");
#pragma mark reverse函數(shù)翻轉(zhuǎn)Vector中的元素
log("reverse(翻轉(zhuǎn))之后: ");
vec.reverse();
for (auto& child : vec) {
log("取出對(duì)象并獲取tag: %i",child->getTag());
}
#pragma mark swap函數(shù)根據(jù)下標(biāo)交換Vector中的元素
vec.swap(0, 6);
log("swap(交換)之后: ");
for (auto& child : vec) {
log("取出對(duì)象并獲取tag: %i",child->getTag());
}
#pragma mark C++標(biāo)準(zhǔn)庫(kù)中的排序函數(shù)
std::sort(vec.begin(), vec.end(), [](Node* a, Node* b){
return a->getTag() < b->getTag();
});
log("sort排序之后: ");
for (auto& child : vec) {
log("取出對(duì)象并獲tag: %i",child->getTag());
}
#pragma mark back函數(shù)返回Vector最后一個(gè)元素
vec.back()->setTag(9);
log("back之后最后一個(gè)元素的tag: %i", vec.at(vec.size()-1)->getTag());
#pragma mark popBack函數(shù)刪除最后一個(gè)元素
vec.popBack();
log("popBack之后Vector.size(): %i",(int)vec.size());
#pragma mark erase函數(shù)刪除索引為1的元素
vec.erase(2);
log("erase(2)之后Vector.size(): %i",(int)vec.size());
#pragma mark eraseObject函數(shù)從Vector中刪除指定的元素
vec.eraseObject(node1);
log("eraseObject(node1)之后Vector.size(): %i",(int)vec.size());
#pragma mark clear函數(shù)清除Vector所有元素
vec.clear();
log("clear之后%s",vec.empty() ? "Vector為空":"Vector為不為空");
log("clear之后Vector.size(): %i",(int)vec.size());
return true;
}
結(jié)果展示
Vector為空
Vector為不為空
Vector.capacity(): 10
Vector.size(): 8
node1在Vector中的索引: 0
node2在Vector中的索引: 5
for循環(huán):
取出對(duì)象并獲取tag: 1
取出對(duì)象并獲取tag: 8
取出對(duì)象并獲取tag: 3
取出對(duì)象并獲取tag: 5
取出對(duì)象并獲取tag: 7
取出對(duì)象并獲取tag: 2
取出對(duì)象并獲取tag: 4
取出對(duì)象并獲取tag: 6
Vector包含node1
reverse(翻轉(zhuǎn))之后:
取出對(duì)象并獲取tag: 6
取出對(duì)象并獲取tag: 4
取出對(duì)象并獲取tag: 2
取出對(duì)象并獲取tag: 7
取出對(duì)象并獲取tag: 5
取出對(duì)象并獲取tag: 3
取出對(duì)象并獲取tag: 8
取出對(duì)象并獲取tag: 1
swap(交換)之后:
取出對(duì)象并獲取tag: 8
取出對(duì)象并獲取tag: 4
取出對(duì)象并獲取tag: 2
取出對(duì)象并獲取tag: 7
取出對(duì)象并獲取tag: 5
取出對(duì)象并獲取tag: 3
取出對(duì)象并獲取tag: 6
取出對(duì)象并獲取tag: 1
sort排序之后:
取出對(duì)象并獲tag: 1
取出對(duì)象并獲tag: 2
取出對(duì)象并獲tag: 3
取出對(duì)象并獲tag: 4
取出對(duì)象并獲tag: 5
取出對(duì)象并獲tag: 6
取出對(duì)象并獲tag: 7
取出對(duì)象并獲tag: 8
back之后最后一個(gè)元素的tag: 9
popBack之后Vector.size(): 7
erase(2)之后Vector.size(): 6
eraseObject(node1)之后Vector.size(): 5
clear之后Vector為空
clear之后Vector.size(): 0