慕尼黑3115449
构造函数有问题,应该为m_pList = new int[m_iSize],这样申请的才是一个数组,析构函数才会正确执行
慕数据5164829
m_pList = new int[m_iSize];
构造函数中这行代码申请数组应该用中括号[ ]。即使如此,你仍然可以看到程序运行结果。因为:
“程序会在释放缓冲区时通知您,而不是在您犯错时”-- 参考:
不仔细看还真不好看出来~
weixin_慕粉1251040
???
weixin_慕粉1251040
环境不对或者main函数 编译器之类的问题。
慕运维3094527
怎么解决的呢?
慕运维3094527
问题已解决
一叶之灵_
插入删除里面有加减
chariots_of_fire
代码呢
盒子先生1
要是代码实现没有问题的话,就是第7行的分号出了问题,第七行的分号应该改成英文的分号
慕粉2359383080
等于0 也就是说没有取到东西,是不是函数有点小错误,比如参数没有加&。
qq_山外来了个呆萌_0
你所说的第一个return出来的i,它是一个数组的下标,因为下标是从0开始的,所以返回值当然要+1才是对的;而第二个return -1,那是用来区分表示的,我们都知道return 1表示OK或者TRUE,return 0则表示ERROR或者是FALSE,那么-1就是用来这样子区别的。以上是我的理解,希望对你有用!若有不同见解,大家一起讨论
junnaxing
ListInsert这个方法中if(i<0||i>=m_iLength) { return false;} 这个判断错了。
一开始m_iLength=0; 你执行 list->ListInsert(0,&e1);时,传入i=0 就return false;了,当然也就没法正确插入元素。
要理解m_iLength这个变量其实总是指向于数组最后一个元素的下一个元素。插入时是允许插入在该位置上的。删除时才不能删除该位置的元素。
应该改成if(i<0 || i > m_iLength) {return false;}
顺便一说,ListDelete这个方法相应的地方也是错的。
Starrysky13
你清空后再遍历输出当然没有了
Starrysky13
你这个是链表么? 为啥还有长度啊?
懿旖星晨
使用中括号
List *list1=new List[10]
_江湖郎中
bool OrderTab<T>::insertElemt(int i,T e){ //连续插入的
if (i<0 || i>m_iLength || m_iLength==m_iSize) //超出容量就不再插入,应该判断 m_iSize==m_iLength
return false;
for (int j = m_iLength - 1; j >= i; j--)
m_pList[j + 1] = m_pList[j];
m_pList[i] = e;
m_iLength++;
return true;
}
奴力力
http://blog.csdn.net/cool_mirror/article/details/1722753
慕村8734284
没有调用遍历函数,或遍历函数没有输出
qq_爱上你我的心_04303694
对的哎,就是赋初值的意思。开辟List类型的空间,用指针指向该空间,并赋初值为10。这具体应该看List是不是被用作初始化了,要是的话就应该另说了吧。
后面的那个是开辟一个数组空间,可存放10个元素,返回数组的起始地址。
慕仙9004655
List.h应该放在头文件中,而List.cpp应该放在源文件中,只是用#include"List.h"包含进源文件中
慕的地0475843
老师这样定义的 int temp; 是一个整型变量,当调用删除函数是传入的实参是 &temp,是为将删除的元素能存入到temp中。你提出的 cout<<temp<<endl ; 这是是输出temp的值。要输出它的地址应该写成cout<<&temp<<endl ; 希望对你有帮助。
木子姑娘
一共只做了七次插入操作,何来八个数据?