【发布时间】:2014-08-02 11:18:12
【问题描述】:
我有一个空间对象(我的东西)数组,我需要减少但保持相同的名称以处理一些碰撞。我将数组设置为:
ufo** ufoAr = new ufo*[numberOfUfos];
for (int i=0; i<numberOfUfos; i++) {
ufoAr[i] = new ufo(randomIntBetween(1630, 70), randomIntBetween(860, 45));
}
当我检测到碰撞时,我想用两个 less 调整数组的大小并删除数组的两个特定元素。喜欢这里:
//look through all the ufoAr[]
for (int i=0; i<numberOfUfos; i++) {
//look through ufoAr[] again to see other objects
for(int j=0; j<10; j++) {
//if the same
if (i==j){ continue; }
else {
//find a collision
if(ufoAr[i]->collision(ufoAr[j]->sp)) {
//Array::Resize(ufoAr, numberOfUfos-2);
//numberOfUfos = numberOfUfos - 2;
// ------ TRY TO RESIZE ARRAY TO -2 BUT SAME NAME WITHOUT iTH AND jTH ELEM
ufoAlive[i] = false;
ufoAlive[j] = false;
}
}
}
}
非常感谢任何有关调整阵列大小的帮助,在此先感谢。我真的很挣扎,需要另一种意见。谢谢
杰克
【问题讨论】:
-
既然是C++,有什么理由不用
std::vector<ufo>? -
我打算用intel icpc编译并行机,用cilk_plus,我相信向量运算是禁止的