233.C++的size_type是什么数据类型?
Posted 每天一个开发小知识
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了233.C++的size_type是什么数据类型?相关的知识,希望对你有一定的参考价值。
每天一个开发小知识
开局一段代码
vector<int> vec = {1, 2};
cout << (vec.size() - 3);
你认为它的输出结果是多少?
是 -1 吗?
不是!
因为
vec.size() 的数据类型为 size_type
size_type 一般被定义为 unsigned int 或者 unsigned long long
所以
vec.size() - 3 的结果为一个无符号整数
在64位系统中
-1 转换成 unsigned long long 后为 18446744073709551615
因此
vec.size() - 3 的输出结果为 18446744073709551615
而不是 -1
总结
自己之前编码丝毫不在意 vec.size() 的数据类型
今后得注意了:
size_type 为一个无符号整数
每天一个开发小知识,今天你学废了吗?
以上是关于233.C++的size_type是什么数据类型?的主要内容,如果未能解决你的问题,请参考以下文章
string::size_type 页73 size_t 页90
size_t, ptrdiff_t, size_type, difference_type