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

小四的海市蜃樓
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 小四 閱讀(409) 評(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>
            一区二区三区精品在线| 国产主播精品在线| 久久夜色精品国产欧美乱| 一本色道88久久加勒比精品| 欧美.www| 久久字幕精品一区| 午夜伦欧美伦电影理论片| 一区二区三区视频观看| 在线免费观看欧美| 国产亚洲女人久久久久毛片| 欧美巨乳在线观看| 免费成人美女女| 久久久99爱| 欧美制服丝袜| 欧美亚洲在线播放| 亚洲欧美日韩综合国产aⅴ| 日韩亚洲国产精品| 亚洲人成网站在线观看播放| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美一区二区三区四区夜夜大片 | 99这里有精品| 最新成人在线| 亚洲国内欧美| 亚洲黄页一区| 亚洲日韩欧美视频一区| 伊人色综合久久天天| 国内精品久久久久久| 国产亚洲成av人片在线观看桃| 国产精品久久久久av| 欧美天堂在线观看| 国产精品成人一区二区网站软件 | 免费在线观看日韩欧美| 久久中文在线| 另类天堂av| 免费亚洲电影在线| 欧美国产丝袜视频| 欧美日韩在线第一页| 欧美日韩精品在线观看| 欧美日韩一区二区三区四区在线观看 | 美女日韩欧美| 欧美大成色www永久网站婷| 欧美成人激情在线| 欧美韩国日本一区| 亚洲狠狠婷婷| 亚洲美女色禁图| 99国产精品99久久久久久粉嫩| 一本到高清视频免费精品| 99精品国产福利在线观看免费| 99视频在线精品国自产拍免费观看 | 亚洲一级片在线看| 亚洲一本视频| 久久精品国产精品亚洲精品| 久久久综合精品| 欧美大胆成人| 99精品视频网| 亚洲欧美日本另类| 久热爱精品视频线路一| 欧美黄色免费| 国产精品亚洲产品| 激情综合视频| 99国产欧美久久久精品| 午夜精品福利在线| 蜜桃av噜噜一区| 日韩视频久久| 久久精品日产第一区二区三区| 欧美不卡一区| 国产欧美精品一区二区色综合 | 亚洲影视在线播放| 久久国产精品黑丝| 欧美国产91| 亚洲一区二区成人在线观看| 久久久久国产精品厨房| 欧美日韩国产一级片| 国产欧美一区二区精品婷婷| 亚洲黑丝在线| 午夜日韩福利| 亚洲第一精品福利| 亚洲综合色丁香婷婷六月图片| 久久久久久九九九九| 欧美视频观看一区| 亚洲第一中文字幕| 午夜视频一区| 亚洲经典三级| 欧美一区二区三区在线| 欧美激情视频在线播放 | 欧美91大片| 亚洲色在线视频| 美女精品在线观看| 国产日本亚洲高清| 一本一本a久久| 免费成人av| 亚洲欧美综合另类中字| 欧美另类一区二区三区| 激情综合色综合久久| 午夜精品久久久久久99热| 亚洲黄网站黄| 久久视频精品在线| 国产欧美日韩亚洲精品| 亚洲一区二区在线免费观看视频| 欧美高清视频在线| 久久国产天堂福利天堂| 国产精品久久九九| 日韩午夜高潮| 欧美激情综合| 久久久精品国产99久久精品芒果| 国产精品女人久久久久久| 艳妇臀荡乳欲伦亚洲一区| 噜噜噜噜噜久久久久久91| 亚洲专区一二三| 欧美丝袜一区二区| 一本色道久久综合亚洲精品婷婷| 欧美电影在线观看完整版| 久久精品午夜| 国产亚洲制服色| 欧美在线免费| 亚洲尤物精选| 国产精品一区毛片| 小辣椒精品导航| 亚洲免费影院| 国产日韩欧美一区二区三区在线观看 | 日韩午夜在线观看视频| 欧美电影免费网站| 久久人人爽人人爽| 亚洲二区在线观看| 你懂的国产精品永久在线| 欧美一区二区三区的| 国产欧美一区二区三区在线看蜜臀| 亚洲欧美国产一区二区三区| 一本久久综合亚洲鲁鲁| 欧美日韩视频免费播放| 正在播放亚洲| 一本一道久久综合狠狠老精东影业| 欧美精品二区| 亚洲午夜免费福利视频| 亚洲毛片在线观看.| 欧美激情第二页| 一本大道久久a久久精品综合| 亚洲黄色尤物视频| 欧美日韩免费在线观看| 亚洲一区视频在线| 亚洲已满18点击进入久久| 国产欧美一区二区三区在线老狼| 久久精品成人| 久久久99爱| 亚洲欧洲视频在线| 日韩一区二区精品视频| 国产精品一二三四区| 久久人人97超碰人人澡爱香蕉| 久久综合九色99| 一本色道久久加勒比88综合| 亚洲夜晚福利在线观看| 国产一区久久久| 亚洲高清影视| 国产精品久久久久一区二区三区 | 欧美成人精品一区二区| 亚洲婷婷综合色高清在线| 亚洲综合久久久久| 在线观看亚洲精品视频| 亚洲欧洲一区二区在线观看| 国产精品白丝jk黑袜喷水| 久久精品123| 欧美成人免费大片| 午夜精品久久久久久久99热浪潮| 久久疯狂做爰流白浆xx| 亚洲毛片av在线| 亚洲欧美日韩一区二区三区在线观看 | 日韩视频一区| 国内精品亚洲| 99v久久综合狠狠综合久久| 国产亚洲a∨片在线观看| 欧美激情一区二区三区在线视频观看 | 久久久久**毛片大全| 欧美风情在线| 久久国产视频网| 欧美成人精品三级在线观看| 午夜一级在线看亚洲| 欧美**人妖| 欧美一区二区三区久久精品茉莉花| 久久综合99re88久久爱| 午夜视频一区二区| 欧美大片免费观看| 久久精品视频99| 欧美午夜精品久久久久免费视| 麻豆精品91| 国产精品爽黄69| 亚洲精品国产精品久久清纯直播| 国产亚洲精品一区二区| 99re成人精品视频| 影音先锋欧美精品| 亚洲一区免费看| 99精品久久| 可以免费看不卡的av网站| 欧美一区二区日韩一区二区| 欧美日本韩国一区二区三区| 免费欧美网站| 韩国av一区二区三区在线观看| 一区二区三区精品在线| 日韩五码在线| 欧美大秀在线观看| 免费成人高清视频|