簡體   English   中英

int vs無符號int vs size_t

[英]int vs unsigned int vs size_t

從更高級的C ++課程開始,我們必須實現自己的矩陣,這對於首次練習來說是典型的。 我們收到了要處理的基本信息,我只剩下一個問題。 訪問類型和大小變量。

這里是1D矩陣的簡單構造函數,並進行了大小檢查。

Array::Array( int xSize )                                                                                     
{                   
    CHECK_MSG(xSize > 0, "Array size too small");
    array_ = new real[xSize];
    size_ = xSize;  
}

使用size_t或unsigned int代替int是否有意義? 閱讀size_t的定義后,我傾向於改用它。 但是,在許多代碼中,我到處都只能看到整數。 它是一種類似Java的編碼風格嗎? 我錯過了size_t的缺點嗎?

編輯:

主要問題與編碼風格有關。 我完全理解size_t和(unsigned)int的區別,正如這里已經解釋過的: unsigned-int-vs-size-t

C ++標准庫幾乎可以肯定將std::size_t用於此類類型。

使用帶signed類型顯然是不希望的,並且理想情況下,您希望使用一種非常適合於擁有支持可迭代性的對象的類型。

從一開始我建議您使用typedef std::size_t MySize; 在課堂上,主要是為了適應未來。 那將是最明智的選擇。

事物的大小可以為負嗎? 否,因此對xSize使用unsigned可以更明確地表達代碼的意圖。

如果您需要能夠處理很大的尺寸,請使用size_t

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM