W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
整數(shù)集合的升級(jí)策略有兩個(gè)好處, 一個(gè)是提升整數(shù)集合的靈活性, 另一個(gè)是盡可能地節(jié)約內(nèi)存。
因?yàn)?C 語(yǔ)言是靜態(tài)類型語(yǔ)言, 為了避免類型錯(cuò)誤, 我們通常不會(huì)將兩種不同類型的值放在同一個(gè)數(shù)據(jù)結(jié)構(gòu)里面。
比如說(shuō), 我們一般只使用 int16_t
類型的數(shù)組來(lái)保存 int16_t
類型的值, 只使用 int32_t
類型的數(shù)組來(lái)保存 int32_t
類型的值, 諸如此類。
但是, 因?yàn)檎麛?shù)集合可以通過(guò)自動(dòng)升級(jí)底層數(shù)組來(lái)適應(yīng)新元素, 所以我們可以隨意地將 int16_t
、 int32_t
或者 int64_t
類型的整數(shù)添加到集合中, 而不必?fù)?dān)心出現(xiàn)類型錯(cuò)誤, 這種做法非常靈活。
當(dāng)然, 要讓一個(gè)數(shù)組可以同時(shí)保存 int16_t
、 int32_t
、 int64_t
三種類型的值, 最簡(jiǎn)單的做法就是直接使用 int64_t
類型的數(shù)組作為整數(shù)集合的底層實(shí)現(xiàn)。 不過(guò)這樣一來(lái), 即使添加到整數(shù)集合里面的都是 int16_t
類型或者 int32_t
類型的值, 數(shù)組都需要使用 int64_t
類型的空間去保存它們, 從而出現(xiàn)浪費(fèi)內(nèi)存的情況。
而整數(shù)集合現(xiàn)在的做法既可以讓集合能同時(shí)保存三種不同類型的值, 又可以確保升級(jí)操作只會(huì)在有需要的時(shí)候進(jìn)行, 這可以盡量節(jié)省內(nèi)存。
比如說(shuō), 如果我們一直只向整數(shù)集合添加 int16_t
類型的值, 那么整數(shù)集合的底層實(shí)現(xiàn)就會(huì)一直是 int16_t
類型的數(shù)組, 只有在我們要將int32_t
類型或者 int64_t
類型的值添加到集合時(shí), 程序才會(huì)對(duì)數(shù)組進(jìn)行升級(jí)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: