int 类型大小会根据不同平台而不同 所以应该是size_type 好·
应该是出现警告,即warning,而不是错误error.C,C++在有符号数和无符号数之间的运算时,会先把数都转成无符号数,再运算,因此,如果i=-1,那么转成无符号数就是0xFFFFFFFF,就会出现-1>2这样的情况,所以VC对这种情况会有warning,提醒你注意.
basic_string<char>::size_type 就是ungisned int,这个你可以看源码 所以就是unsigned int和int的区别 为了不在赋值时溢出所以最好用对应容器的size_type 你用int时一般编译器都有警告,类似“从无符号到有符号转换可能丢失数据”之类的
Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是Integer,从 ...
那照你这么说为什么会有 typedef,有的时候大家都是int,其实表达意思是不一样的,有的表示的是a数组的...
size_t和int size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。...在32位架构中被普遍定义为: typedef unsigned int size_t; 而在64位架构中被定义为: typedef unsigne...
Alice:size_t s = v.size()。Bob:@Alice 太菜了,容器的v.size()返回size_type,不是size_t...
vector.size() : vector::size_type string.size() : string::size_type ... 这些容器.size()都是返回无符号整形。 当maxSize与ss.size()进行比较时会先将maxSize强制类型转换为unsigned类型,此时int 型数据 maxSize = - 1,在计算机存储中int值负数以二进制补码的形式存在(32位为例)-1:1111 1111 1111...
那就是说,string::size_type 是放的是整数,但是这种整数与int是不同的,这个string::size_type是足够大,他的范围是足够大。 那么这个放的是无符号值,没有负号。 还有,应该尽可能避免无符号类型和int型数的比较。如果n是一个具有负值的int型,那么表达式 str.size()<n 的判断将坑定是 true。因为负数n,会自...
size_type 相当于 unsigned int类型 使用size_type 主要是为了适应不同的平台 int 类型大小会根据不同平台而不同