当向量为空时,vector.size()的输出很奇怪

当我运行这段代码

#include <bits/stdc++.h>

using namespace std;

int main() {
  vector<int> v;
  cout << v.size() << endl;
  cout << v.size() - 1 << endl;
  cout << v.size() - 2 << endl;
  return 0;
}

输出为:

0                                                                                                                
18446744073709551615                                                                                             
18446744073709551614

我正在使用c ++ 11,有人可以解释吗?