JVJ*_*lus -3 c++ debugging vector issue-tracking
我曾尝试运行此代码
// 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;
}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是输出来了
0
垃圾价值
它应该是
0
-1
这是:代码
myints.size()是一种无符号类型:正式a std::vector<int>::size_type.从无1符号类型中减去值为0将导致环绕效果(在您的情况下)
std::numeric_limits<std::vector<int>::size_type>::max()
Run Code Online (Sandbox Code Playgroud)
它不会打印"垃圾值":但是上面的数字,比一个2的大功率小一个.