使用索引重置数组

时间:2013-07-30 21:51:34

标签: c++ arrays latency

我有一个数组,其大小和值在执行过程中始终保持不变。 我想以最小的性能开销来做到这一点。

而是改变数组大小我只是有成员int变量指示开始和结束索引,我希望这个数组的使用者在foor循环中使用这些索引。风险是,如果消费者不使用开始和结束指数,它可能最终导致错误。有没有更好的方法呢?

所以我拥有的是:

MyClass
{

public:
BusinessClass                   myArray[MAX_COUNT];//the array

int StartIndex; //start index
int EndIndex;   //End index

Logic()
{
//modified the array and changes start and end index
}

}

MyConsumer
{

MyClass obj;

public:
void ReadArray()
{
for (int i = obj.StartIndex ; i <obj.EndIndex; i++)
{
//perform logic
}
}

}

1 个答案:

答案 0 :(得分:1)

您可以使用返回length的{​​{1}}方法,而不是公开底层数组,以及使用EndIndex-StartIndex的值返回数组偏移量的数组运算符

您可以像这样访问数组中的项目:

StartIndex

MyClass 类看起来像这样:

for (int i = 0; i < obj.length(); i++) {
  BusinessClass &item = obj[i];
}