1.unsigned int 与int不要做比较,尽量保证比较时候类型相同。
bool SqList::ListInsert(unsigned int i,ElemType value)
//刚开始以为i是插入位置,最小为0,所以用unsigned int。这样写并没有错,只是在循环条件处会容易出错。
//作为新手,还是用int,然后在相应位置加入参数判断比较好
//用了unsigned int 做参数时要注意会不会出现它和负数比较大小一类的情况。在这里我出过两次错了
{
if(length+1>maxLength)
{
ListEnlarge();
}
else if(i<0)
return false;
else
{
for(int j=length-1;j>i-1;--j)//i为unsigned int,插入到第0个的时候,i-1结果不是-1,而是一个很大的正数,会导致循环出错
p[j+1]=p[j];
}
p[i]=value;
++length;
return true;
}