第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

出隊想不明白!請大佬指導一下。

https://img1.sycdn.imooc.com//5c683e8700013ebc07410518.jpg


第一處:參數(shù)為甚么要引用?(首地址?但elment是輸入賦值,對他引用是哪里的首地址?)

第二處:element = m_pQueue[m_iHead],這樣,對頭給了element,m_pQueue[m_iHead]的值怎么就實現(xiàn)了刪除吧?

正在回答

3 回答

【1】首先解釋一下參數(shù)為什么要用引用類型?

首先不用參數(shù),直接申明函數(shù)如下:

bool DeQueue( ); // return bool 類型,判斷出隊列操作是否成功,但是不會返回被移出隊列的數(shù)值

那么,傳入引用類型的參數(shù)呢?

bool DeQueue(int& element);

除了return的返回值可以判斷操作是否成功外,我們還可以拿到當前被移出隊列的數(shù)

【2】element = m_pQueue[m_iHead],這樣,對頭給了element,m_pQueue[m_iHead]的值怎么就實現(xiàn)了刪除吧?

element = m_pQueue[m_iHead] ;// 只是將m_pQueue數(shù)組中的m_iHead下標(這兒也是隊列頭)的數(shù)值給了element變量,這樣引用類型的傳參可以獲取到當前被移出隊列的數(shù)值。

? ? ? ? ? ? ?m_iHead++; // 頭后移動一位
??????????? m_iQueueLen--; // 長度減去一位

這兩句才是真正實現(xiàn)了刪除的功能。

0 回復 有任何疑惑可以回復我~

多謝你

0 回復 有任何疑惑可以回復我~
#1

qq_超越_21

我覺得這里用引用不是多余的,如果你在外部需要用到出隊的那個值,就應該傳引用或者指針來保存這個出隊的值
2019-02-25 回復 有任何疑惑可以回復我~

第一處:傳參采用引不引用效果一樣,老師這里是p->Dequeue(XXX);把隊首原先的值的賦值給傳進來的參數(shù)element,只是賦值給它,(先把隊首元素賦值給element,再隊首后移一位,為什么老師要把原來隊首的值進行賦值給別人,隊首再后移,我個人覺得多余)后面并沒有用到,其實也可以這樣寫:

bool Dequeue()//出隊
??? {
??????? if(QueueEmpty())
??????? {
??????????? return false;
??????? }
??????? else
??????? {
??????????? m_iHead++;
??????????? m_iHead=m_iHead%m_iQueueCapacity;
??????????? m_iQueueLen--;
??????????? return true;
??????? }
??? }

第二處:通過m_iHead++;指針后移,相當于隊首元素m_pQueue[m_iHead]后移一位,m_iQueueLen--;(長度也縮短一位),理解為隊首后移一位(而不是刪除了,那個位置就還是存在的,也符合環(huán)形隊列的特點)


純個人理解,用詞不是很專業(yè),有點啰嗦,希望幫你更好理解。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

出隊想不明白!請大佬指導一下。

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號