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