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

小四的海市蜃樓
Never surrender to complexity
posts - 21,comments - 59,trackbacks - 0

復(fù)習(xí)一下數(shù)據(jù)結(jié)構(gòu),用鏈表實(shí)現(xiàn)了一個(gè)堆棧模板類。
寫(xiě)的過(guò)程中用到一些知識(shí)點(diǎn),碰到一些問(wèn)題,隨手記下來(lái)。

1:mystack<int> s; mystack<int> s2 = s;
編譯器會(huì)把s2 = s編譯成拷貝構(gòu)造函數(shù)s2(s),此時(shí)調(diào)用的是拷貝構(gòu)造函數(shù),而不是賦值函數(shù)(切記)。
另外有時(shí)候編譯器這種自做聰明,自動(dòng)調(diào)用符合參數(shù)類型的構(gòu)造函數(shù)會(huì)帶來(lái)很難發(fā)現(xiàn)的錯(cuò)誤,為了防止編譯器這么做,可以在構(gòu)造函數(shù)聲明前加explicit關(guān)鍵字。

2:不改變成員變量值的函數(shù),例如empty(),要聲明為const,這點(diǎn)很重要,不然當(dāng)一個(gè)const mystack&類型的對(duì)象調(diào)用empty()的時(shí)候,會(huì)編不過(guò)。

3:拷貝構(gòu)造函數(shù)最好要先判斷是否是拷貝自身,不然有時(shí)候就出錯(cuò)。

4:拷貝構(gòu)造函數(shù)也別忘了成員變量初始化列表。 

template<typename T>
class mystack
{
public:
    mystack();
    mystack(
const mystack& src);
    
~mystack();
    
bool push(const T& data);
    T pop();
    
bool empty() const;
    
void clear();
    mystack
& operator = (const mystack& src);
private:
    
void copystack(mystack& dst, const mystack& src);
    
struct stacknode
    
{
        T data;
        stacknode
* pnext;
    }
;
    stacknode
* phead;
}
;

template
<typename T>
mystack
<T>::mystack():phead(NULL)
{}

template
<typename T>
mystack
<T>::mystack(const mystack<T>& src):
phead(NULL)
{
    copystack(
*this, src);
}


template
<typename T>
mystack
<T>::~mystack()
{
    clear();
}


template
<typename T>
void mystack<T>::clear()
{
    
while(!empty())
    
{
        
pop();
    }

}


template
<typename T>
void mystack<T>::copystack(mystack& dst, const mystack& src)
{
    stacknode
* p = src.phead;
    mystack
<T> tmp;
    
while(p)
    
{
        tmp.push(p
->data);
        p 
= p->pnext;
    }

    
while(!tmp.empty())
    
{
        dst.push(tmp.pop());
    }

}


template
<typename T>
mystack
<T>& mystack<T>::operator=(const mystack& src)
{
    
if (this == &src)
        
return *this;
    clear();
    copystack(
*this, src);
    
return *this;
}


template
<typename T>
bool mystack<T>::empty() const 
{
    
return(phead == NULL);
}


template
<typename T>
bool mystack<T>::push(const T& data)
{
    stacknode
* p = new stacknode;
    
if (!p) return false;
    p
->data = data;
    p
->pnext = phead;
    phead 
= p;
    
return true;
}


template
<typename T>
T mystack
<T>::pop()
{
    assert(
!empty());
    T data;
    data 
= phead->data;
    stacknode
* tmp = phead;
    phead 
= phead->pnext;
    delete tmp;
    
return data;
}


int main(int argc, char* argv[])
{
    mystack
<int> s;    
    
for (int i = 0; i < 1000; i++)
        s.push(rand());
    mystack
<int> s2(s);
    
while(!s2.empty())
    
{
        cout
<<s2.pop()<<endl;
    }

    
return 0;
}
posted on 2007-12-27 13:15 小四 閱讀(399) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 算法與數(shù)據(jù)結(jié)構(gòu)

FeedBack:
# re: 數(shù)據(jù)結(jié)構(gòu)隨筆1(堆棧)
2007-12-31 15:51 | TheAnswer
隱式類型轉(zhuǎn)換并非拷貝構(gòu)造函數(shù)造成的,而是單參數(shù)的構(gòu)造函數(shù)造成的  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            在线综合亚洲欧美在线视频| 国产伦精品一区二区三区四区免费| 国产欧美韩国高清| 性欧美大战久久久久久久久| 亚洲欧美日韩一区二区三区在线观看| 国产精品久久激情| 欧美伊人久久大香线蕉综合69| 亚洲一区二区视频在线观看| 国产亚洲毛片在线| 亚洲第一久久影院| 欧美国产精品劲爆| 亚洲免费视频观看| 欧美一区综合| 亚洲青色在线| 亚洲视频香蕉人妖| 激情欧美一区二区三区| 亚洲国产婷婷香蕉久久久久久99| 国产精品成人观看视频国产奇米| 亚洲午夜av电影| 午夜精品区一区二区三| 亚洲激情小视频| 亚洲视频在线观看| 国产一区二区无遮挡| 欧美激情视频一区二区三区免费| 欧美日韩精品免费观看视频完整| 久久成人这里只有精品| 久久综合久久久| 香蕉乱码成人久久天堂爱免费| 久久久久欧美精品| 一区二区三区.www| 欧美综合国产精品久久丁香| 99综合在线| 欧美在线观看你懂的| 一区二区av在线| 久久久水蜜桃av免费网站| 亚洲小视频在线观看| 久久人人超碰| 久久成年人视频| 欧美日韩亚洲一区二区三区| 欧美成人亚洲成人| 国产日韩欧美成人| 一区二区三区免费观看| 日韩天堂av| 久久女同互慰一区二区三区| 欧美色网一区二区| 亚洲欧洲在线看| 亚洲国产精品一区二区尤物区| 亚洲欧美日韩一区在线| 一区二区三区视频在线看| 久久综合中文色婷婷| 久久久久久一区二区| 国产精品丝袜xxxxxxx| 日韩一区二区免费高清| 91久久国产精品91久久性色| 久久精品五月| 噜噜噜在线观看免费视频日韩| 国产精品一区=区| 亚洲视频第一页| 亚洲一区二区欧美| 欧美特黄一区| 亚洲伦伦在线| 一区二区三区视频免费在线观看| 欧美精品18+| 亚洲国产日本| 亚洲美女av网站| 欧美激情bt| 六月婷婷一区| 亚洲激情一区| 欧美日韩高清免费| 在线午夜精品自拍| 亚洲欧美日韩国产另类专区| 国产精品视频区| 欧美在线网站| 免费观看久久久4p| 日韩视频免费观看| 欧美美女视频| 亚洲一区在线播放| 久久精品最新地址| 在线免费观看成人网| 欧美二区在线播放| 99国产精品99久久久久久| 午夜精品福利一区二区蜜股av| 国产日本欧洲亚洲| 久久综合久久综合久久| 亚洲人久久久| 性色av一区二区三区| 国产在线一区二区三区四区| 久久久精品动漫| 亚洲国产色一区| 午夜精品视频在线观看| 国产欧美精品| 欧美www视频| 午夜精品久久久久久久| 免费欧美高清视频| 一本大道久久a久久精品综合| 国产精品久线观看视频| 久久精品99国产精品日本| 亚洲人成高清| 久久精品国产亚洲高清剧情介绍| 亚洲三级免费电影| 国产精品视频999| 免费欧美高清视频| 亚洲一区二区三区在线| 免费不卡在线视频| 性伦欧美刺激片在线观看| 亚洲国产成人在线播放| 国产欧美日韩高清| 欧美精品首页| 久久精品官网| 亚洲一区二区三区在线视频| 亚洲电影在线播放| 久久久久久一区二区| 亚洲自拍都市欧美小说| 亚洲观看高清完整版在线观看| 国产精品伦一区| 一本色道久久88精品综合| 欧美a级一区| 久久se精品一区精品二区| 亚洲伦理在线| 亚洲国内欧美| 在线精品视频一区二区| 国产欧美一区视频| 国产精品盗摄一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美1级日本1级| 午夜精品久久| 亚洲夜间福利| 亚洲网站在线看| 99视频国产精品免费观看| 亚洲国产精品传媒在线观看| 久久综合色8888| 久久久www成人免费无遮挡大片| 亚洲一区二区在线视频| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美日韩一区二区三区在线观看免 | 亚洲在线免费| 中文久久精品| 一区二区av| 一区二区不卡在线视频 午夜欧美不卡在 | 一区二区三区精品视频| 亚洲精品视频二区| 最新中文字幕一区二区三区| 亚洲国产精品99久久久久久久久| 亚洲第一色在线| 亚洲国产精品一区二区久| 亚洲国产日韩在线| 亚洲精品在线三区| 亚洲最新视频在线播放| 亚洲午夜精品久久| 亚洲性人人天天夜夜摸| 性8sex亚洲区入口| 久久精品一区二区三区中文字幕 | 老巨人导航500精品| 欧美成人一区二区| 亚洲精品国产精品国自产在线 | 亚洲欧美怡红院| 久久精品青青大伊人av| 女人色偷偷aa久久天堂| 亚洲欧洲日产国产网站| 一本色道久久88综合日韩精品| 亚洲综合另类| 老司机aⅴ在线精品导航| 美国十次了思思久久精品导航| 欧美激情一区| 国产精品一区一区三区| 激情综合自拍| 一二三四社区欧美黄| 欧美一区二区在线看| 亚洲精品一区二区三区在线观看| av成人天堂| 久久精品欧美| 亚洲精品美女在线观看| 亚洲欧美在线aaa| 久久夜色精品一区| 欧美视频免费看| 狠狠色丁香婷婷综合| 一本大道久久a久久综合婷婷| 欧美亚洲日本一区| 欧美激情片在线观看| 亚洲图片欧美日产| 欧美成人第一页| 国产精品免费视频xxxx| 亚洲国产精品成人va在线观看| 亚洲欧美国产不卡| 欧美 日韩 国产 一区| 亚洲手机在线| 欧美日本免费| 有码中文亚洲精品| 欧美一级理论片| 亚洲裸体视频| 欧美xxx在线观看| 国语精品一区| 西瓜成人精品人成网站| 亚洲人被黑人高潮完整版| 久久精品主播| 国产精品尤物福利片在线观看| 日韩午夜电影av| 欧美黄色网络| 久久久www成人免费毛片麻豆| 国产精品影院在线观看|