在第一个可用索引处设置对象到C数组

Set object into C array at first available index

本文关键字:对象 数组 设置 第一个 索引      更新时间:2023-10-16

我有一个box2d body数组,初始化如下:

b2Body *touchedBodies[10];

我需要用几个b2Body填充它,并且我想将下一个b2Body设置到第一个可用的位置——我还没有放置b2Body的位置。所以我要找这样的东西:

touchedBodies[touchedBodies->firstOpenSpot()] = someB2Body;

这可能吗?

您可以使用像Vector这样的动态容器。

可以存储最后插入元素的索引。

// sample without failsave
int openSpot = 0;
touchedBodies[openSpot] = someB2Body;
openSpot++;

你可以用nullpointer初始化这个数组,然后遍历。

// sample without failsave
for (int i=0; i < 10; i++) {
    if (touchedBodies[i] != 0) continue;
    touchedBodies[i] = someB2Body;
    break;
}

介绍count。或者,首先用0填充touchedBodies,然后让firstOpenSpot()搜索第一个0。确保添加逻辑以防止运行超出大小(例如使用sizeof或单独的逻辑/变量)。