【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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,144评论 6 13
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,624评论 1 51
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,878评论 0 10
  • 照个人理解,本质上没有太大区别 size_t是为了平台移植,比方说一个string太长的时候,用unsigned ...
    阿布554_阅读 671评论 1 0
  • 【作者:安静】 【睹景思亲】 又下雨了,今年秋天的雨水真多,已经到了晚秋时节,绵绵秋雨,连着下了三天,没有停下来的...
    謹修阅读 445评论 0 3

友情链接更多精彩内容