vector数组的删除,CallFuncN的使用

void CTaskMode::createSpr(int taskId,Coordinate pos,int offiset)
{
	if(taskId < TASK_SPECIAL_SEGMENT)
	{
		Sprite * sprAction = Sprite::create("cell2.png",Rect((taskId%IMG_X_CNT)*CELL_WIDTH,(taskId/IMG_X_CNT)*CELL_HEIGHT,CELL_WIDTH,CELL_HEIGHT));
		sprArr.push_back(sprAction);
		sprAction->setPosition(Point(pos.m_nX*60,pos.m_nY*60+30));
		addChild(sprAction);
		sprAction->runAction(ScaleTo::create(0.7,0.2,0.2));
		sprAction->runAction(Sequence::create(MoveTo::create(0.8,allLocation[offiset]),
			CallFuncN::create(this,callfuncN_selector(CTaskMode::removeAction)),nullptr));
	}
}

void CTaskMode::removeAction(Node *node)
{
	updateUI(1);
	int i;
	Sprite *spr = (Sprite *)node;
	for(i=0;i<sprArr.size();i++)
	{
		if(spr == sprArr[i])
		{
			sprArr[i]->removeFromParent();
			break;
		}
	}
	sprArr.erase(sprArr.begin()+i,sprArr.begin()+i+1);
}
删第二个元素 
vector<int> v;
v.erase(v.begin()+1,v.begin()+2);
注意erase(m,n)删除第m到第n个元素,第n个不会被删除
CCCallFunc::create(this, callfunc_selector(testCallFunc::callback1)),
CCCallFuncN::create(this, callfuncN_selector(testCallFunc::callback2))
CCCallFuncND::create(this, callfuncND_selector(testCallFunc::callback3), (void*)0xbebabeba)

对应的方法

void testCallFunc::callback1(){}
void testCallFunc::callback2(CCNode* pSender){}
void testCallFunc::callback3(CCNode* pTarget, void* data){}
时间: 2024-10-22 16:21:53

vector数组的删除,CallFuncN的使用的相关文章

Java源代码分析之Vector数组

Vector源码分析 每个Java程序员应该的特性 可变长数组(grow or shrink) 能够使用索引获取值(accessed using an integer index) 多线程环境下线程安全 类图 package java.util; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOperator; /* vector 通过

c++中的array数组和vector数组

我觉得实验一下会记得比较牢,话不多直接上代码. 下面是array数组,感觉用的不多. //cpp 风格数组 array #include <iostream> #include <array> #include <vector> using namespace std; int main() { array<int , 6> myint = {1 , 2 , 34, 45 , 0 , -2}; for(int i = 0 ; i < myint.siz

vector数组用法及举例

vector详解 1.调用vector的头文件 注意:c++编程中填写这个头文件 2.vector的用法 注意:大概来讲,vector就是一个变长数组,与a[]这种普通数组不同的是,他不用定义多长,是根据用户的用法变化的,同时它的用法及方法也与普通数组不同 3.vector的存取方法及特殊 注意:vector的存取与栈相同(即一种无盖有底的“洞”,从顶端存入,从顶端取出): 3.vector数据的读取及其他方法 注意:iterator是一种迭代器,即一种读取器,其功能类似for循环:利用iter

数组集合删除算法

数组集合删除算法: 删除: /** * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com * @author 小沫 */ public void remove(int index){ //objs的长度如果小于0或对象值小于等于0那么抛出数组越界异常 if(objs.length<0||this.index.0){ throw new IndexOutOfBoundsException(); } if(this.index-1==index){ //当前对象的是所占长度-1等

php数组中删除元素之重新索引

如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊 <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> print_r($arr) 之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d ) 那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是 array_splice(): <?ph

从数组中删除元素:pop()&amp;unshift()方法

//pop() 和 shift() 方法都将删掉的元素作为方法的返回值返回 var a = [ 1, 2, 3 ]; alert(a.pop());//从数组末尾删除 alert(a); alert(a.shift());//从数组首端删除 alert(a); /* var a = [ 9, 1, 2 ]; for ( var i = 0; i < a.length; ++i) { a[i] = a[i + 1];//模拟unshift()方法 } alert(a); // 1,2,3,4,5,

C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法

C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法. C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换. 1.std::vector::erase() 函数原型:iterator erase (iterator position); //删除指定元素 iterator erase (iterator first, iterator last); //删除指定范围内的元素 返回值:指向删除元素(或

vector数组

1.Vector数组可以认为是大小的数组. 2.它可以实现排序,函数是sort(v.begin(),v.end() . 3.它可以实现二分查找功能,函数是lower_bound(v.begin(),v.end(),x).查找的是值x.返回的是查找值的指针.如果查找返回的是指针v.end()或者发现*it!=x那么容器里没有x这个数. 实例代码: 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring>

js连接多个数组并删除重复的元素

js连接多个数组并删除重复的元素:在实际应用中,可能需要将多个数组合并到一个数组中去,并且删除数组中重复的元素.代码实例如下: var a=["antzone","蚂蚁部落","市南区"], b=["新锐科技","蚂蚁部落","努力奋斗"], c=[2,"新锐科技","js教程"], _a=a.concat(b).concat(c), _hash=