分享本人insert操作的两种写法:
#1
++block[btot].len;
...
for(int i=b[p].len+1;i>x;i--) block[p][i]=block[p][i-1];
block[p][x]=val;
//思路:考虑插到最后,此时假设最后有一只不存在的跳蚤,并插入这只跳蚤之前。
#2
for(int i=b[p].len+1;i>x+1;i--) block[p][i]=block[p][i-1];
block[p][x+1]=val;
...
insert(--x,val);
//思路:同 #1,但舍去了虚空跳蚤。
#2 能过,#1 不然。我不理解,求解答
考虑到可能是其他部分实现加上 #1 有问题,附原始代码