未来丶梦而已 发表于 2013-12-10 15:29:36

对于这段代码不解。

本帖最后由 未来丶梦而已 于 2013-12-10 15:30 编辑


void StaffManage::AddIndexItem(const IndexType &e) //在索引表中增加索引项
{
if(count>=maxsize) //索引表溢出
{
maxSize = maxSize + NUM_OF_INCREMENT; //增加索引表容量
IndexType *tmpIndexTable = new IndexType; //临时索引表
for (int i = 0;i<count;i++)
tmpIndexTable = indexTable; //复制索引表
delete []indexTable; //释放索引表存储空间
indexTable = tmpIndexTable; //指向临时索引表
}
indexTable=e;
//加入到索引表中
} 把原来的索引表释放到新的索引表
为什么把原来的索引表释放了。
还要指向新的。再添加东西进索引表。
为什么不直接在原来的索引表加内容。

浮砂 发表于 2013-12-10 15:29:37

可能是因为//索引表已经溢出了,再也不能装新的东西了,
所以要建立一个新的临时索引表,
以前那个自然就没用了,留着占地方,自然就要释放掉咯,
然后就可以指向一个新的,比原来那个更大的,用来存更多东西。
页: [1]
查看完整版本: 对于这段代码不解。