C 中size t 和 size type的區別

2021-09-12 19:43:28 字數 666 閱讀 7963

為了使自己的程式有很好的移植性,c++程式設計師應該盡量使用size_t和size_type而不是int, unsigned

1. size_t是全域性定義的型別;size_type是stl類中定義的型別屬性,用以儲存任意string和vector類物件的長度

2. string::size_type 制型別一般就是unsigned int, 但是不同機器環境長度可能不同 win32 和win64上長度差別;size_type一般也是unsigned int

3. 使用的時候可以參考:

string::size_type  a =123;

vector::size_type b=234;

size_t b=456;

4. size_t 使用的時候標頭檔案需要 ;

size_type 使用的時候需要或者

5.  sizeof(string::size_type) 

sizeof(vector::size_type) 

sizeof(vector::size_type)  

sizeof(size_t) 

上述長度均相等,長度為win32:4 win64:8

6. 二者聯絡:在用下標訪問元素時,vector使用vector::size_type作為下標型別,而陣列下標的正確型別則是size_t。

參考:

c 中size type和size t的關係

size type 由string類型別和vector類型別定義的型別,用以儲存任意string物件或vector物件的長度,標準庫型別將size type定義為unsigned型別 string抽象意義是字串,size 的抽象意義是字串的尺寸,string size type抽象意義是尺寸單位型別...

c 中size t和size type之間的關係

之前一直很迷惑size t和size type有什麼區別,後來專門去網上查了查,現在終於明白區別了。為了使自己的程式有很好的移植性,在程式編寫的時候應該盡量使用size t和size type。其主要有一下幾點區別 1.size t是全域性定義的型別 size type是stl類中定義的型別屬性。在...

C語言 size t說明

size t是什麼型別的?為了增強程式的可移植性,便有了size t,它是為了方便系統之間的移植而定義的,不同的系統上,定義size t可能不一樣。在32位系統上 定義為 unsigned int 也就是說在32位系統上是32位無符號整形。在64位系統上定義為 unsigned long 也就是說在...