第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該在for循環(huán)中使用std :: size_t還是int?

我應該在for循環(huán)中使用std :: size_t還是int?

C++
慕村225694 2020-02-04 15:26:58
我只是想知道我應該使用std::size_t循環(huán)和東西而不是int?例如:#include <cstdint>int main(){    for (std::size_t i = 0; i < 10; ++i) {        // std::size_t OK here? Or should I use, say, unsigned int instead?    }}通常,關于何時使用的最佳實踐是什么std::size_t?
查看完整描述

3 回答

?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

一個好的經(jīng)驗法則是,您需要在循環(huán)條件下將其與自然存在的事物進行比較std::size_t。

std::size_t是任何sizeof表達式的類型,并保證能夠表達C ++中任何對象(包括任何數(shù)組)的最大大小。通過擴展,它也保證對于任何數(shù)組索引都足夠大,因此它是數(shù)組上逐個索引循環(huán)的自然類型。

如果您只是在計算一個數(shù)字,那么使用保存該數(shù)字的變量類型或一個intunsigned int(如果足夠大)的類型可能會更自然,因為這些對于機器而言應該是自然大小。


查看完整回答
反對 回復 2020-02-04
?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

size_tsizeof運算符的結果類型。

使用size_t變量數(shù)組中的模型的大小或指數(shù)。size_t傳達了語義:您立即知道它代表一個以字節(jié)為單位的大小或一個索引,而不僅僅是另一個整數(shù)。

同樣,使用size_t字節(jié)表示大小有助于使代碼具有可移植性。


查看完整回答
反對 回復 2020-02-04
?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

該size_t類型用于指定內(nèi)容的大小,因此很自然地使用它,例如,獲取字符串的長度然后處理每個字符:


for (size_t i = 0, max = strlen (str); i < max; i++)

    doSomethingWith (str[i]);

你也必須注意,當然邊界條件,因為它是一個無符號類型。頂端的邊界通常并不那么重要,因為最大值通常很大(盡管有可能到達那里)。大多數(shù)人只是將an int用于此類事情,因為他們很少擁有足夠大以超過該能力的結構或數(shù)組int。


但是請注意以下事項:


for (size_t i = strlen (str) - 1; i >= 0; i--)

由于無符號值的包裝行為,這將導致無限循環(huán)(盡管我已經(jīng)看到編譯器對此提出警告)。也可以通過以下方式緩解此問題(稍難理解,但至少可以避免包裝問題):


for (size_t i = strlen (str); i-- > 0; )

通過將減量轉換為延續(xù)條件的檢查后副作用,這將對減量前的值進行連續(xù)性檢查,但仍在循環(huán)內(nèi)使用減量值(這就是循環(huán)從而len .. 1不是從處運行的原因len-1 .. 0)。


查看完整回答
反對 回復 2020-02-04
  • 3 回答
  • 0 關注
  • 1700 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號