在设计将缩小的动态数组时,有什么方法可以跟踪使用次数最多的索引,以及当该索引的持有对象被删除时,找到新的最高使用索引。
现在我可以想出一个简单int last_used
的方法,然后将维护这个变量的成本收取到func_delete
必须检查它是否删除最高的值,如果是,检查每个较小的值以寻找非空值。(数组将始终为空初始化)
if(last_index == deleted_index){
while(last_index >0 && array[--last_index] != NULL)
// if the array is now only half full, I realloc
}
还有其他聪明的方法吗?