視頻中i從0開始:
插入在第i個位置之前(i=0-m_iLength),即i=0表示插入在第一個有效數(shù)據(jù)結(jié)點之前,i=m_iLength則表示插入在最后一個有效結(jié)點(尾結(jié)點)之后;
刪除在第i個位置的結(jié)點(i=0-m_iLength-1)
若i從1開始即為插入i=1-m_iLength+1,刪除i=1-m_iLength
插入在第i個位置之前(i=0-m_iLength),即i=0表示插入在第一個有效數(shù)據(jù)結(jié)點之前,i=m_iLength則表示插入在最后一個有效結(jié)點(尾結(jié)點)之后;
刪除在第i個位置的結(jié)點(i=0-m_iLength-1)
若i從1開始即為插入i=1-m_iLength+1,刪除i=1-m_iLength
2016-07-28
打個比方,size為10個空間,而只使用了8個空間,length=8,m=9的時候也不會跨界,但是大于10的時候會跨界,m不能大于size
2016-07-26
老師在講解GetElem的時候是這么寫的:
bool List::GetElem(int i,int *e)
{
if(i<0||i>=m_iSize)
return false;
*e = m_pList[i];
return ture;
}
而我是這么寫的:
bool List::GetElem(int i,int *e)
{
if(i<0||i>=m_iLength)
return false;
else
{
*e = m_pList[i];
return ture;
}
}
請問老師,I的范圍為什么不是在m_iLength內(nèi)而是在m_iSize內(nèi)呢
bool List::GetElem(int i,int *e)
{
if(i<0||i>=m_iSize)
return false;
*e = m_pList[i];
return ture;
}
而我是這么寫的:
bool List::GetElem(int i,int *e)
{
if(i<0||i>=m_iLength)
return false;
else
{
*e = m_pList[i];
return ture;
}
}
請問老師,I的范圍為什么不是在m_iLength內(nèi)而是在m_iSize內(nèi)呢
2016-07-26
最新回答 / ziom
這么寫是會存在一個下標(biāo)越界問題,就是當(dāng)數(shù)組已滿的情況下。其他情況是不會出現(xiàn)越界的,老師應(yīng)該是故意留下了這個bug,方便后面講課的時候重點申明。
2016-07-25
已采納回答 / 小葉柏杉
說白了,就是將 << 這個符號重載,將輸出改編成另一種輸出的模式。<< 每次只能輸入一個值,輸入多個值要 <<x1<<x2<<……這要是點坐標(biāo),重載后<<p ? 輸出的是p.x ? p.y 這樣的
2016-07-24