我曾尝试过运行此代码
// vector::size
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> myints;
std::cout << "size: " << myints.size() << '\n';
std::cout << "size: " << myints.size()-1 << '\n';
return 0;
}
令人惊讶的是输出来了
0
垃圾值
应该是
0
-1
这是:code
答案 0 :(得分:6)
myints.size()
是无符号类型:正式为std::vector<int>::size_type
。从无符号类型中减去值{0}的1
将导致环绕效果(在您的情况下)
std::numeric_limits<std::vector<int>::size_type>::max()
不打印出“垃圾值”:但是上面的数字会比2的大功率小一个。