我有一个数组,其大小和值在执行过程中始终保持不变。 我想以最小的性能开销来做到这一点。
而是改变数组大小我只是有成员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
}
}
}
答案 0 :(得分:1)
您可以使用返回length
的{{1}}方法,而不是公开底层数组,以及使用EndIndex-StartIndex
的值返回数组偏移量的数组运算符
您可以像这样访问数组中的项目:
StartIndex
MyClass 类看起来像这样:
for (int i = 0; i < obj.length(); i++) {
BusinessClass &item = obj[i];
}