【c++】size_t 和 size_type的區別

為了使自己的程序有很好的移植性,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<int>size_type b=234;
    size_t b=456;
  4. size_t 使用的時候頭文件需要 <cstddef> ;size_type 使用的時候需要<string>或者<vector>
  5. sizeof(string::size_type)
    sizeof(vector<bool>::size_type)
    sizeof(vector<char>::size_type)
    sizeof(size_t)
    上述長度均相等,長度為win32:4 win64:8
  6. 二者聯系:在用下標訪問元素時,vector使用vector::size_type作為下標類型,而數組下標的正確類型則是size_t
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,132評論 6 13
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,533評論 1 51
  • 題目類型 a.C++與C差異(1-18) 1.C和C++中struct有什么區別? C沒有Protection行為...
    阿面a閱讀 7,707評論 0 10
  • 照個人理解,本質上沒有太大區別 size_t是為了平臺移植,比方說一個string太長的時候,用unsigned ...
    阿布554_閱讀 627評論 1 0
  • 【作者:安靜】 【睹景思親】 又下雨了,今年秋天的雨水真多,已經到了晚秋時節,綿綿秋雨,連著下了三天,沒有停下來的...
    謹修閱讀 392評論 0 3