日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]為什么需要?jiǎng)e名下面的說明只是一個(gè)例子,實(shí)際的使用場(chǎng)景一定不止這些。假設(shè)有一個(gè)二維圖形計(jì)算的程序,定義了一個(gè)point結(jié)構(gòu)體。struct?point{???int?x;???int?y;};在有些系統(tǒng)

為什么需要?jiǎng)e名


下面的說明只是一個(gè)例子,實(shí)際的使用場(chǎng)景一定不止這些。


假設(shè)有一個(gè)二維圖形計(jì)算的程序,定義了一個(gè)point結(jié)構(gòu)體。


struct?point

{

???int?x;

???int?y;

};


在有些系統(tǒng)中,int類型的精度,范圍都足夠,在其他的系統(tǒng)中可能就不能滿足需求,可能需要擴(kuò)大字長(zhǎng),或者需要提高精度等等。


方法有多種,其中之一就是定義別名。在C++11中定義別名的方法如下:


using?dtype?=?int;


它的含義是為int指定一個(gè)別名,dtype。指定別名以后,point結(jié)構(gòu)體變成下面這樣:


struct?point

{

???dtype?x;

???dtype?y;

};


這樣一來,只要改變dtype所對(duì)應(yīng)的數(shù)據(jù)類型,所有使用point的代碼都會(huì)適應(yīng)這種變化。


下面說明另一種場(chǎng)景。繼續(xù)假設(shè)這個(gè)程序中也會(huì)用到vector:


vector

vector

?while(it?!=?v.end()){

? ? ???cout?<<?(*it).x?<<?","?<<?(*it).y?<<?endl;

? ? ???it++;

?}


如果類似代碼多次出現(xiàn),每次輸入相同的內(nèi)容,有些人就會(huì)覺得麻煩。這時(shí)可以為vector


using?PointVector?=?vector


PointVector?va?=?{{1,?2},?{3,?4}};

PointVector::iterator?ita?=?va.begin();

while(ita?!=?va.end()){

? ? ???cout?<<?(*ita).x?<<?","?<<?(*ita).y?<<?endl;

? ? ???ita++;

?}


定義別名,提供了另一種看程序的方式。


類型別名和typedef有什么區(qū)別?


typedef也能提相同的功能,但是形式略有不同。


typedef int dtype;??? //等價(jià)于using dtype = int;

typedef vector

typedef void(*PtoF)(int); //等價(jià)于using PtoF=void(*)(int);




C++11的別名定義方式似乎更容易理解一些。除此以外區(qū)別似乎不大,就看你怎么選了。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉