我正在用 C++ 编写一个程序,它将与 Windows Embedded Compact 7 一起使用。我听说在编写嵌入式代码时最好不要动态分配数组。我将跟踪 0 到 50 个对象,因此我最初分配 50 个对象。
Object objectList[50];
int activeObjectIndex[50];
static const int INVALID_INDEX = -1;
int activeObjectCount=0;
activeObjectCount 告诉我实际使用了多少对象,activeObjectIndex 告诉我正在使用哪些对象。如果正在使用第 0、第 7 和第 10 个对象,我希望activeObjectIndex = [0,7,10,-1,-1,-1,...,-1];
并且activeObjectCount=3;
随着不同的对象变为活动或不活动,我希望 activeObjectIndex 列表保持有序。
目前,我只是在每个循环结束时对值可能会更改的 activeObjectIndex 进行排序。
首先,有没有比我正在做的更好的方法来跟踪嵌入式系统中的对象(可能是活动的也可能不是活动的)?如果没有,是否有一种算法可以用来在每次添加或删除活动对象时保持对象排序?还是我应该定期做一个冒泡排序或其他东西来保持它们的顺序?