内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

c++數(shù)組類模板的實現(xiàn)-創(chuàng)新互聯(lián)

1、預(yù)備知識

創(chuàng)新互聯(lián)是一家成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè),提供網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,建網(wǎng)站,按需網(wǎng)站開發(fā),網(wǎng)站開發(fā)公司,于2013年開始是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價值為核心業(yè)務(wù),全程參與項目的網(wǎng)站策劃設(shè)計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。

(1)模板參數(shù)不僅僅可以是類型參數(shù),還可以是數(shù)值型參數(shù)。

如:

template

<typename T, int N>//int N就是數(shù)值型參數(shù), 要注意這個int類型,因為這里要注意數(shù)值型參數(shù)的限制,下面有說數(shù)值型參數(shù)的限制。

void func()

{

T a[N];//使用模板參數(shù)來定義局部數(shù)組,模板的數(shù)值型參數(shù)來表示數(shù)組的大小。

}

func<double, 10>();//這樣進行使用,數(shù)值型參數(shù),也就是第二個參數(shù)要是常量,因為這是數(shù)值型模板參數(shù)的限制造成的。

數(shù)值型模板參數(shù)的限制:變量不能最為模板參數(shù),浮點數(shù)不能作為模板參數(shù),類對象不能作為模板參數(shù)等。

本質(zhì):模板參數(shù)是在編譯階段被處理的單元,這點毋庸置疑,因為編譯器會首先對模板進行編譯,因此,在編譯階段必須準確無誤的唯一確定,變量是不能夠在編譯階段進行確定的,所以變量

不可以作為模板參數(shù),浮點數(shù)因為在計算機的內(nèi)存中是不精確的,所以C++中不允許浮點數(shù)作為模板參數(shù)。類對象也不能在編譯的時候進行唯一的確定,因為它其實就是一個變量,類的變量擺了。

(2)一道面試題,用你覺得最高效的方法求得1+到N的數(shù)值。

template

< int N >//數(shù)值型模板參數(shù)的函數(shù)類模板

class Sum

{

public:

static const int VALUE = Sum<N-1>::VALUE + N;

};

template

< >完全特化

class Sum< 1 >

{

static const int VALUE = 1;

};

int main(void)

{

cout << "1 + 2 + 3 + ... + 100 = " <<Sum<100>::VALUE <<endl;

return 0;

}

解釋:上面的程序中,類模板用的是數(shù)值型參數(shù),這點從模板參數(shù)為int就可以看出來,所以我們使用的時候,直接傳遞數(shù)值就行。VALUE是const的,并且有初始化,所以在編譯階段就會取得

VALUE這個常量的值,將其放入符號表中,同時VALUE又被static修飾,所以是放在全局數(shù)據(jù)區(qū)的。當(dāng)編譯器編譯到VALUE時,首先就會去獲取這個常量的值進而放入符號表中,但是編譯器發(fā)現(xiàn)

要想取得VALUE的值,首先要取得N-1的值,要想取得N-1的值,要先取得N-1-1的值,知道N為1的時候,編譯器發(fā)現(xiàn)有這個類的特化,所以就用了這個特化的類,VALUE的值為1,因為有遞歸規(guī)程,

所以在返回的時候,N不斷的又+1,每次+1都會將加完的值放到VALUE這個常量中,直到N變到了N為止,也就是又一直加到了N,最后VALUE的值就完全取得完畢了,最后放入了符號表中。

這是一個高效的求和方法。因為編譯器在編譯的時候,這個VALUE的常量值就已經(jīng)確定了,我們后面cout去訪問這個值的時候,只是相當(dāng)于直接從符號表中將值取出來,所以高效。

這個高效的方法依賴了類模板技術(shù)、類模板完全特化技術(shù)、還依賴了類模板參數(shù)為數(shù)值型參數(shù)的技術(shù),還依賴了對const和static的理解。有了static才可以用作用域分辨符去訪問這個VALUE,

有了const才會在編譯階段將值確定,因為常量的值是在編譯階段確定的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:c++數(shù)組類模板的實現(xiàn)-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article38/icjsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄面包屑導(dǎo)航、企業(yè)建站、網(wǎng)站維護、小程序開發(fā)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
石阡县| 额尔古纳市| 西昌市| 神木县| 东港市| 唐山市| 金门县| 庆城县| 柯坪县| 阿拉尔市| 安化县| 嘉定区| 磐石市| 兰西县| 浠水县| 武清区| 丰顺县| 贵阳市| 汕尾市| 兴海县| 桃源县| 闽侯县| 洪江市| 宝鸡市| 武夷山市| 金溪县| 大石桥市| 崇信县| 辰溪县| 赞皇县| 邵武市| 神农架林区| 马鞍山市| 泗水县| 久治县| 九龙县| 京山县| 永州市| 娱乐| 平江县| 崇信县|