社区
C++ 语言
帖子详情
关于string::size_type 大小问题?
roye2002
2008-11-27 02:48:50
string::size_type 大小?
用sizeof(string::size_type)输出 4;
但书上说“虽然不知道string::size_type的确切类型,但知道它是是unsigned类型”
string::size_type 不就是32位的unsigned类型吗???
...全文
135
12
打赏
收藏
关于string::size_type 大小问题?
string::size_type 大小? 用sizeof(string::size_type)输出 4; 但书上说“虽然不知道string::size_type的确切类型,但知道它是是unsigned类型” string::size_type 不就是32位的unsigned类型吗???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lann64
2008-11-28
打赏
举报
回复
[Quote=引用 4 楼 roye2002 的回复:]
引用 2 楼 taodm 的回复:
楼主啊,难道你没听说64位的CPU已经问世很久了么。
老大! 那个跟cpu 没有关系的类型 别说64位的我用的是128位的cpu。
[/Quote]
64位cpu + 64位操作系统 + 64位编译器的话,估计size::type就是64位的unsigned类型了。跟cpu还是有点关系。
toadzw
2008-11-27
打赏
举报
回复
[Quote=引用 5 楼 ztz0223 的回复:]
C/C++ code但书上说“虽然不知道string::size_type的确切类型,但知道它是是unsigned类型”
你可以看看具体的源代码试试。
个人估计它跟size_t是一种类型呵呵
至于具体的类型不确定,是因为涉及到移植性能,不同的系统不同的硬件平台的区别都要考虑进来的
[/Quote]
up you
bfhtian
2008-11-27
打赏
举报
回复
[Quote=引用 6 楼 kingteng 的回复:]
这个和具体的平台有关,没有必要深究的,反正就是足够用就对了
[/Quote]
up
frisky_lobo
2008-11-27
打赏
举报
回复
呵呵,size_type的定义就是一个unsigned int
taodm
2008-11-27
打赏
举报
回复
哦,128位的cpu,那每个程序的最大可用内存是多大?
[Quote=引用 4 楼 roye2002 的回复:]
引用 2 楼 taodm 的回复:
楼主啊,难道你没听说64位的CPU已经问世很久了么。
老大! 那个跟cpu 没有关系的类型 别说64位的我用的是128位的cpu。
[/Quote]
airtrack
2008-11-27
打赏
举报
回复
依靠具体的编译器。
kingteng
2008-11-27
打赏
举报
回复
这个和具体的平台有关,没有必要深究的,反正就是足够用就对了
就呆在云上
2008-11-27
打赏
举报
回复
但书上说“虽然不知道string::size_type的确切类型,但知道它是是unsigned类型”
你可以看看具体的源代码试试。
个人估计它跟size_t是一种类型呵呵
至于具体的类型不确定,是因为涉及到移植性能,不同的系统不同的硬件平台的区别都要考虑进来的
roye2002
2008-11-27
打赏
举报
回复
[Quote=引用 2 楼 taodm 的回复:]
楼主啊,难道你没听说64位的CPU已经问世很久了么。
[/Quote]
老大! 那个跟cpu 没有关系的类型 别说64位的我用的是128位的cpu。
shailen126
2008-11-27
打赏
举报
回复
UP下下
taodm
2008-11-27
打赏
举报
回复
楼主啊,难道你没听说64位的CPU已经问世很久了么。
lann64
2008-11-27
打赏
举报
回复
不同的编译器实现可以定义成不同的大小。
C++ 学习
string
::
size
_
type
第二次看C++ Primer,看到
string
类型的时候,再一次注意到了
string
::
size
_
type
; 自己最早编写C++的时候,因为刚看过书,所以还比较注意,不把
size
_
type
和int混用,但是慢慢的,看过不少人编写的程序都是直接将
size
_
type
和int混用,这其实不好。比如下面的代码:
string
str("zhoajdsofjalsdfnnfdslnfdsklfn");...
string
::
size
_
type
类型
string
::
size
_
type
类型 从逻辑上来讲,
size
()成员函数似乎应该返回整型数值,或如2.2节“建议”中所述的无符号整数。但事实上,
size
操作返回的是
string
::
size
_
type
类型的值。我们需要对这种类型做一些解释。
string
类类型和许多其他库类型都定义了一些伙伴类型(companion
type
s)。这些伙伴类型使得库类型的使用是机器无关的(machine-ind...
C++
string
::find() 坑点全解析:npos、无符号陷阱与constexpr优化
std::
string
::find() 是C++中基础但极易误用的字符串查找接口,其返回类型为无符号
size
_
type
,而非有符号整数——这直接导致与 -1 比较引发未定义行为、编译警告甚至静默逻辑错误。理解 npos 作为
size
_
type
最大值的数学本质,是规避‘18446744073709551615’诡异返回值的关键。结合 constexpr(C++20起支持编译期求值)和
string
_view,find 可升级为元编程工具;而正确使用 const char* 重载、防御 pos 越界、避免
C++
string
::
size
_
type
类型
程序代码: int main() {
string
str("Hello World!\n"); cout return 0; } 从逻辑上来讲,
size
() 成员函数似乎应该返回整形数值,或是无符号整数。但事实上,
size
操作返回的是
string
::
size
_
type
类型的值。
c++
string
::
size
_
type
详解
c++
string
::
size
_
type
详解
string
::
size
_
type
类型 从逻辑上来讲,
size
()成员函数似乎应该返回整型数值,或如2.2节“建议”中所述的无符号整数。但事实上,
size
操作返回的是
string
::
size
_
type
类型的值。我们需要对这种类型做一些解释。
string
类类型和许多其他库类型都定义了一些伙伴类型(companion
type
s)。这些伙伴类型使得库类型的使用是机器无关的(machine-independent)。
size
_
type
就是这些
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章