課程
/后端開發
/C++
/數據結構探險—隊列篇
使用類模板的話,遍歷的輸出應該怎么寫,因為輸出int和類的方法不一樣 請大神告知
2018-03-21
源自:數據結構探險—隊列篇 5-1
正在回答
不好意思,第85行的QueueEmpty()函數調用多了一對括號。
void?MyQueue::QueueTraverse(){ ????for(int?i=m_iHead;?i?<?m_iHead?+?m_iQueueLen;?i++){ ????????m_pQueue[m_iHead].printInfo(); ????} } //其中printInfo()是自定義類型實現的函數,例如 void?Customer::printInfo(){ ????cout?<<?”姓名:?"?<<?m_strName?<<?endl; ????cout?<<?"年齡:?"?<<?m_iAge?<<?endl; ????cout?<<?endl; }
再貼上一個我實現的吧,直接復制下面的代碼可運行。
#include?<iostream> #include?<string> using?namespace?std; class?Customer{ public: Customer(){ //需要默認構造函數 } Customer(string?name,?int?age){ m_strName?=?name; m_iAge?=?age; } void?printInfo()?const{ cout?<<?"姓名:?"?<<?m_strName?<<?endl; cout?<<?"年齡:?"?<<?m_iAge?<<?endl; cout?<<?endl; } private: string?m_strName; int?m_iAge; }; template?<class?T> class?MyQueue{ public: MyQueue(int?queueCapacity){ m_iQueueCapacity?=?queueCapacity; m_iQueueLen?=?0; m_iHead?=?0; m_iTail?=?0; m_pQueue?=?new?T[queueCapacity]; } ~MyQueue(){ delete[]?m_pQueue; } void?QueueClear(){ m_iQueueLen?=?0; m_iHead?=?0; m_iTail?=?0; } bool?QueueEmpty()?const{ if(m_iQueueLen==0){ return?true; } else{ return?false; } } bool?QueueFull()?const{ if(m_iQueueLen==m_iQueueCapacity){ return?true; } else{ return?false; } } bool?EnQueue(T?element){ if(QueueFull()){ return?false; } else{ m_pQueue[m_iTail]?=?element; m_iTail?++; m_iTail?=?m_iTail?%?m_iQueueCapacity; m_iQueueLen?++; return?true; } } bool?DeQueue(T?&element){ if(QueueEmpty()()){ return?false; } else{ element?=?m_pQueue[m_iHead]; m_iHead?++; m_iHead?=?m_iHead?%?m_iQueueCapacity; m_iQueueLen?--; return?true; } } void?QueueTraverse(){ for(int?i?=?m_iHead;?i?<?m_iHead?+?m_iQueueLen;?i++){ m_pQueue[i%m_iQueueCapacity].printInfo(); } } private: T*?m_pQueue; int?m_iHead; int?m_iTail; int?m_iQueueLen; int?m_iQueueCapacity; }; int?main(int?argc,?char?*argv[])?{ MyQueue<Customer>*?p?=?new?MyQueue<Customer>(4); p->EnQueue(Customer("imooc",?20)); p->QueueTraverse(); }
template <class T>
void MyQueue::QueueTraverse()
{
// 里面T即你需要的類型
}
void MyQueue::QueueTraverse(){
?//some code
舉報
與現實最為貼近的數據結構-隊列,帶大家進入數據結構的美妙世界
2 回答模板啊模板、
3 回答模板問題,求解哪錯了 錯誤是LNK2019
1 回答關于模板類
2 回答c++模板是什么
1 回答做出了老師說的模板類,但是運行時提示runtime library,幫忙看下
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-04-01
不好意思,第85行的QueueEmpty()函數調用多了一對括號。
2018-04-01
再貼上一個我實現的吧,直接復制下面的代碼可運行。
2018-03-24
template <class T>
void MyQueue::QueueTraverse()
{
// 里面T即你需要的類型
}
2018-03-24
template <class T>
void MyQueue::QueueTraverse(){
?//some code
}