青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

游戲的天空

堅持不懈每一天

C++博客 聯系 聚合 管理
  7 Posts :: 0 Stories :: 4 Comments :: 0 Trackbacks
最近開始學習STL,C 標準模板庫,個人根據標準模板庫中的list 自己寫了個list模板,由于作業量較大,只實現了list里的基本功能,給大家分享下,如有更好的意見請加qq350544011,一起討論討論. 代碼如下:List.h文件:
最近創建了自己的討論群 希望大家能一起加入 群號:45811732
#ifndef LIST#define LIST#include "stdafx.h"

/////////////////////////////鏈表類模板的聲明///////////////////////

template<typename T>

class CList

{

public:  
//結點 struct Node 
{    

   T node;

  Node* next; 

};

 //跌代器 
 class iterator 
{
    public:  iterator()  
   {     

   };

  ~iterator()  {          };       

   //重載"!=" 
    bool operator != (iterator &it) 
    {   
         if(m_val != it.m_val)   
         {   
             return true;   
         } 
         return false;  
   }

  //重載"前++ "  
   iterator operator++ ()  
   {   
      m_val = m_val->next;

      return *this;  
   }

  //重載 "后++ "  
   iterator operator++ (int)
 {   
   m_val = m_val->next;

   return *this; 
 }

  //重載*  
T operator*()  
{  
    return m_val->node; 
  }

  Node *m_val; 

private:    

}; 

 CList();

 ~CList();   

//在連表尾部添加
 void push_back(const T &_node);

 //在連表的頭部添加 
void push_front(const T &_node);

 //刪除連表中的最后一個元素 
void pop_back();

 //刪除連表中的第一個元素 
void pop_front();

 //返回指向第一個元素的迭代器
 typename CList<T>::iterator begin();

 //返回末尾的迭代器 
typename CList<T>::iterator end();

 //判斷是否為空
 bool empty(){ if(!m_phead){ return true; } return false; }

 //清空鏈表
 void clear();

protected:

 private:  

    Node *m_phead;   

  };

 

////////////////////////////類模板的函數定義///////////////////////

template<typename T>
CList<T>::~CList()

{

    //刪除鏈表里的所有結點
    if(m_phead)  
   {   
      Node* temp = m_phead;

     while(temp->next!=NULL) 
      {  
             Node* temp1 = temp;          

            temp = temp->next;

            delete temp1;

         temp1 = NULL;  

      }

     m_phead = NULL;

    }

}

template<typename T>
 CList<T>::CList()

m_phead = NULL;

}

template<typename T> 
void CList<T>::push_back(const T &_node)

 //如果連表為空
 if(empty()) 
{   
   Node* tempnode = new Node;

  tempnode->node =  _node;

  tempnode->next = NULL;

  m_phead = tempnode; 
 
 } 
//如果連表不為空 
else 
{   

   Node *temp = m_phead;

     while(temp->next!=NULL) 
    {   

      temp = temp->next;  
      }    
 
   Node* tempnode = new Node;    
   
   tempnode->node = _node;     
   
   tempnode->next = NULL;

  temp->next = tempnode;  
  
}  

}

 template<typename T>

void CList<T>::push_front(const T &_node)

   if(empty()) 
   {     
         Node* tempnode = new Node;

        tempnode->node =  _node;

        tempnode->next = NULL;

        m_phead = tempnode;   
   } 
   else 
   { 
       Node* tempnode = new Node;

        tempnode->node = _node;

        tempnode->next = m_phead->next;     m_phead = tempnode;

    }

}

template<typename T>void CList<T>::pop_back()

   if(empty())
    {  
         return ; 
    } 
    else
    { 
       Node* temp = m_phead;

        if(!temp->next)  
         {  

          delete temp;

      m_phead = NULL; 
       }  
       else  
      {   
         while(temp->next->next!=NULL)   
         {    
            temp = temp->next; 
           }

         delete temp->next;

   temp->next = NULL; 
    }   
    }
   }

template<typename T>void CList<T>::pop_front()
 { 
   if(empty()) 
   {  
      return; 
   } 
   else 
   {  
         Node* temp = m_phead;

        m_phead = m_phead->next;

        delete temp;

        temp = NULL; 
   }

}

 template<typename T>typename CList<T>::iterator CList<T>::begin()
{  
   iterator tempit;

   tempit.m_val = m_phead;

  return tempit;
}

 template<typename T>typename CList<T>::iterator CList<T>::end()
{  
   //如何去釋放?  
   iterator tempit  ;

  Node* tempnode1 = m_phead;

  while(tempnode1!=NULL)  
      tempnode1 = tempnode1->next;

  tempit.m_val = tempnode1;

  return tempit;

}

template<typename T>void CList<T>::clear()

   //刪除鏈表里的所有結點 if(m_phead)
    {  
      Node* temp = m_phead;

     while(temp->next!=NULL)  
      {   
            Node* temp1 = temp;         
             
            temp = temp->next;

            delete temp1;

            temp1 = NULL;
  }

        m_phead = NULL;  
   }

}

#endif
posted on 2012-03-24 06:09 GLpro 閱讀(1247) 評論(1)  編輯 收藏 引用 所屬分類: C++基礎學習筆記

Feedback

# re: 自己實現了STL里的list部分功能 2012-03-25 09:49 tb
相當的不錯啊   回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩另类视频| 国产精品手机在线| 欧美成人一区二区三区片免费| 欧美日韩国产一区二区三区| 亚洲国产成人精品女人久久久 | 久久精品在线观看| 一区二区久久久久| 欧美激情 亚洲a∨综合| 国产综合色在线| 午夜精品久久久久久久99水蜜桃 | 欧美日韩在线观看视频| 亚洲人成7777| 亚洲国产美女| 久久男人资源视频| 狠狠色丁香久久综合频道| 久久riav二区三区| 性久久久久久久久久久久| 国产精品久久久一本精品| 亚洲欧美另类在线观看| 亚洲视频高清| 国产欧美精品一区| 久久久激情视频| 久久久久久国产精品mv| 狠狠色综合色区| 欧美1区免费| 欧美国产视频在线观看| 一区二区三区欧美亚洲| 亚洲精品乱码| 国产精品一区二区在线观看网站| 亚洲欧美视频一区| 欧美一二三区精品| 亚洲第一精品电影| 亚洲欧洲日本国产| 国产精品久久二区二区| 欧美一区二区视频在线| 欧美中文在线视频| 亚洲国产裸拍裸体视频在线观看乱了 | 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 免费看黄裸体一级大秀欧美| 亚洲一区bb| 亚洲婷婷免费| 亚洲一区综合| 在线免费高清一区二区三区| 最新中文字幕亚洲| 国产精品看片资源| 美女视频网站黄色亚洲| 嫩草国产精品入口| 亚洲午夜一二三区视频| 午夜精品免费在线| 亚洲国产你懂的| 亚洲特级片在线| 精品成人国产| 99国产精品一区| 精品不卡视频| 中文久久乱码一区二区| 国内精品一区二区| 亚洲精品色图| 激情久久五月| 中文精品视频一区二区在线观看| 精品成人一区二区三区| 一本一道久久综合狠狠老精东影业| 国产亚洲欧美一区二区三区| 亚洲精品美女免费| 黄色亚洲免费| 亚洲视频精品在线| 亚洲激情偷拍| 午夜精品久久久久久久久| 亚洲巨乳在线| 久久久久99| 欧美一级视频| 欧美日韩国产999| 免费在线亚洲欧美| 国产日韩在线视频| 国产精品99久久久久久白浆小说| 亚洲日本激情| 久久精品国产精品| 亚洲欧洲99久久| 欧美日韩岛国| 亚洲国产成人91精品| 黑人一区二区| 欧美一区二区三区电影在线观看| 亚洲天堂偷拍| 欧美日韩午夜剧场| 亚洲国产色一区| 亚洲国产婷婷综合在线精品 | 亚洲精品视频在线看| 亚洲国产综合在线| 久久久久久久91| 久久久精品日韩欧美| 国产精品亚洲а∨天堂免在线| 99在线精品免费视频九九视| 亚洲免费高清| 欧美精品v国产精品v日韩精品 | 亚洲一区二区三区免费视频| 一区二区三区四区国产精品| 欧美激情一区二区三区成人| 欧美高清自拍一区| 亚洲黄一区二区| 免费国产一区二区| 亚洲高清不卡一区| 国产精品成人一区二区三区夜夜夜| 在线综合亚洲欧美在线视频| 欧美黄色小视频| 亚洲黄色免费| 亚洲精品视频一区| 欧美日韩国产高清视频| 日韩午夜在线电影| 亚洲综合丁香| 国产一区二区剧情av在线| 欧美亚洲网站| 男人插女人欧美| 亚洲精品小视频在线观看| 欧美电影打屁股sp| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产精品羞羞答答xxdd| 亚洲一区久久| 久久久久欧美| 亚洲国产另类久久久精品极度| 欧美成人伊人久久综合网| 亚洲国产小视频| 亚洲男人的天堂在线观看| 国产视频一区免费看| 久久一日本道色综合久久| 亚洲黄网站黄| 欧美中文字幕久久| 136国产福利精品导航| 欧美二区在线| 中文在线一区| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲国产精品久久久久婷婷884| 欧美国产一区在线| 亚洲欧美偷拍卡通变态| 欧美电影在线播放| 一区二区三区欧美亚洲| 国产一区99| 欧美连裤袜在线视频| 午夜精品久久久久久久男人的天堂 | 欧美国产视频日韩| 亚洲性夜色噜噜噜7777| 国产一区清纯| 欧美日韩国产精品一区| 欧美一区三区三区高中清蜜桃| 欧美成人午夜激情在线| 午夜精品福利视频| 91久久精品国产| 国产视频欧美| 国产精品多人| 欧美精品99| 久久婷婷久久| 午夜精品久久久99热福利| 亚洲欧洲综合另类| 狼狼综合久久久久综合网| 亚洲免费视频观看| 野花国产精品入口| 亚洲第一网站| 国内精品久久久久影院色| 国产精品久久91| 欧美日韩另类一区| 欧美日韩国产色综合一二三四| 久久躁日日躁aaaaxxxx| 亚洲欧美国产日韩天堂区| 亚洲免费大片| 91久久久久久国产精品| 久久大综合网| 亚洲欧美日韩精品久久久| 亚洲精品免费网站| 欧美高清在线视频观看不卡| 老司机成人网| 久久男人资源视频| 精品福利电影| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲欧美韩国| 亚洲一区区二区| 在线视频你懂得一区| 亚洲美女av网站| 亚洲人成网站在线观看播放| 欧美91大片| 欧美ed2k| 亚洲二区视频| 亚洲高清不卡在线| 亚洲欧洲日产国产网站| 亚洲欧洲精品一区二区精品久久久| 女女同性精品视频| 欧美大片一区| 最新69国产成人精品视频免费| 亚洲电影下载| 亚洲国产精品一区二区久| 欧美电影免费观看网站| 亚洲国产成人av好男人在线观看| 亚洲国产成人高清精品| 91久久亚洲| 亚洲午夜激情网页| 亚洲一区二区av电影| 午夜在线观看免费一区| 久久精品女人的天堂av| 另类专区欧美制服同性| 欧美激情国产精品| 国产精品久久久久免费a∨| 国产午夜精品理论片a级探花| 精品91在线|