原因是size()返回值是unsigned long long int型,两个无符号数相减若小于0则结果将是一个很大的正数。
#include
using namespace std;
int main()
{
string s1="abcd", s2="abc";
int len = s2.size() - s1.size();
cout <<"len = "<< len << endl;
cout << s2.size() - s1.size() << endl;//直接相减
unsigned long long int a = 4, b = 3;//等同于这个
cout << b - a << endl;
return 0;
}