这几步是什么意思,该如何处理

这几步是什么意思
void fox::shanchu()
{
  cout<<"输入你想删除的联系人"<<endl;
int i,h;
string num;
cout<<"你想删除的联系人的编号"<<endl;
cin>>num;
for(i=0;i<=n;i++)
if(f[i].num==num)
{
for(h=i;h<n-1;h++)//////////////////
f[h]=f[h+1];/////////////// 这三个句子是什么意思啊?
n--;/////////////////// 
cout<<"联系人的信息已经删除"<<endl;
}
if(f[i].num!=num)
cout<<"该联系人不存在"<<endl;
fflush(stdin);

}

------解决方案--------------------
你这个使用顺序表存储的,删除的时候是这样子的:先找到要删除的元素,然后用这个节点的下一个节点来覆盖这个节点,一次这样子进行就行了,最后节点的个数要减1
for(h=i;h<n-1;h++)//////////////////
f[h]=f[h+1];/////////////// 每个节点向前移动一位
n--;/////节点的总个数要减1
就是说,从你要删除的那个节点的下一个节点开始,每个都向前移动一位,这样就可以删除了那个元素了