不知道ICF设计的太狗血了,还是自己的编程功底太狗血了。
ivfFloatArrayModel类型,在AddElement一些元素后,删除的时候。
如果这样删除
//delete
int nArraySize = 0;
m_snapshot_output_matrix_model->GetSize(&nArraySize);
for(int i = 0; i < nArraySize; i++)
{
FAILED(m_snapshot_output_matrix_model->DeleteElement(i));
}
m_snapshot_output_matrix_model->GetSize(&nArraySize);
int test = 0;
这样GetSize, 出来24,循环一圈删除后,size变成了12.
搞半天,如果从0开始删除,它的索引被改变了。第0个删除后,第1个变成了0,删除index为1的时候,实质是删除了第2个。
所以,应该倒着删除。
//delete
int nArraySize = 0;
m_snapshot_output_matrix_model->GetSize(&nArraySize);
for(int i = nArraySize - 1; i >= 0; i--)
{
FAILED(m_snapshot_output_matrix_model->DeleteElement(i));
}
m_snapshot_output_matrix_model->GetSize(&nArraySize);
int test = 0;