社区
C++ 语言
帖子详情
size_t与size_type有什么区别
shore1111
2008-05-03 09:58:37
如题,刚接触这一方面不是很清楚,还望明白人赐教~~
...全文
6659
22
打赏
收藏
size_t与size_type有什么区别
如题,刚接触这一方面不是很清楚,还望明白人赐教~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wei318525
2012-10-17
打赏
举报
回复
学习了
zzhays
2012-10-02
打赏
举报
回复
4,size_t 使用的时候头文件需要 <cstddef>【<tchar.h>(_T())】 ;size_type 使用的时候需要<string>或者<vector>更正下
zzhays
2012-10-02
打赏
举报
回复
1,size_type:由string类类型和vector类类型定义的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型
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 使用的时候头文件需要 <tchar.h> ;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;
还有更多,这个需要积累思考揣摩集思广益
omegabomb
2009-09-11
打赏
举报
回复
学习容器的时候用到很多
cnnbjwq
2009-03-04
打赏
举报
回复
是的,只是一种能马上让人看懂的符号!!
maomao19850220
2008-11-18
打赏
举报
回复
正在学习容器
帮助很大谢谢
jeff_shampoo
2008-10-18
打赏
举报
回复
size_t和size_type是为了独立于机器而定义的类型;
因为比如在这个电脑上int为2b,而另一台电脑上是4b。这样就给程序的可移植带来麻烦
为了解决这个问题,在库内定义了如上类型;
//为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int,unsigned;
taodm
2008-05-04
打赏
举报
回复
是“你不该关心它们有任何的相同”。
WingForce
2008-05-04
打赏
举报
回复
[Quote=引用 6 楼 arong1234 的回复:]
size_t是全局定义的类型,size_type是STL类中定义的类属类型
[/Quote]
北极猩猩
2008-05-04
打赏
举报
回复
更正一下一楼和楼上的错误。
size_t不一定是int,他是受到平台影响的。
一般来说在32位系统中size_t是unsigned int
xzdwfwt111
2008-05-04
打赏
举报
回复
[Quote=引用 1 楼 tangshuiling 的回复:]
在标准C/C++的语法中,只有int float char bool等基本的数据类型,至于size_t,或size_type都是以后的编程人员为了方便记忆所定义的一些便于理解的由基本数据类型的变体类型。
例如:typedef int size_t;定义了size_t为整型。
[/Quote]
1楼的正解!
北极猩猩
2008-05-04
打赏
举报
回复
sizt_t是C++的一个标准的typedef.全局有效,定义在全局名称空间中
size_type是STL定义的,只在namespace std中有效
arong1234
2008-05-04
打赏
举报
回复
size_t是全局定义的类型,size_type是STL类中定义的类属类型
langhua0001
2008-05-04
打赏
举报
回复
两个都不是基本数据类型,方便记忆而已
「已注销」
2008-05-04
打赏
举报
回复
很多这种例子,一般是unsigned int
vbman2003
2008-05-04
打赏
举报
回复
只是个别名而已
typedef不会创建新类型,只是给已有的类型建立一个新名称
Jncryang
2008-05-04
打赏
举报
回复
学习
nuaacj8888
2008-05-04
打赏
举报
回复
VC6中定义size_t为typedef unsigned int size_t
size_type应该是C++为例如string类和许多其他库类型定义的配套类型,使这些库类型的使用与机器无关,一般定义为unsigned类型(例如unsigned int unsigned long)
JackXu2018
2008-05-04
打赏
举报
回复
它们只是为了提高代码的易读性和可维护性
起了个别名而已
比如size_t、time_t、pid_t等等很多的,不过这些是UC中自己定义好的别名而已
cryingzgz
2008-05-03
打赏
举报
回复
如果把size_t和size_type换成a和b
在程序中的作用没有变
但是不如原来直观
size_t和size_type一看就知道是干什么用的
而a和b,会让看代码的人很茫然
加载更多回复(2)
FastDFS 分布式文件系统部署
# 块存储、文件存储、对象存储这三者的本质差别是什么? 1)块存储:磁盘阵列,硬盘(块存储主要是将裸磁盘空间整个映射给主机使用的) 2)文件存储:FTP、NFS服务器(解决文件无法共享的问题) 3)对象存储:内置...
size
_t和
size
_
type
为了使自己的程序有很好的移植性,C++程序员应该尽量使用
size
_t和
size
_
type
,而不是int,unsigned。 在标准C/C++的语法中,只有int float char bool等基本的数据类型,至于
size
_t,或
size
_
type
都是以后的编程人员为了方便记忆所定义的一些便于理解的由基本数据类型的变体类型。
size
_t是为了方便系统之间的移植而定义的,它是一个无符号整型,在...
size
_t和int
区别
size
_t和int
size
_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。
size
_t的真实类型与操作系统有关。 在32位架构中被普遍定义为:
type
def unsigned int
size
_t; 而在64位架构中被定义为:
type
def unsigned long
size
_t;
size
_t在32位架构上...
笔记(一)——
size
_t 与
size
_
type
的
区别
C++笔记(一) ——
size
_t 与
size
_
type
的
区别
C++中
size
_t与
size
_
type
的小结
标准定义中,
size
_t和
size
_
type
被定义为unsigned int。但是sizt_t是C++的一个标准的
type
def,全局有效,定义在全局名称空间中
size
_
type
是STL定义的,
size
_t不是容器概念,而
size
_
type
是容器概念,没有容器不能使用。
size
_t的引入增强了程序在不同平台上的可移植性。经测试发现,在32位系统中
size
_t是4字节的,而
C++ 语言
64,701
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章