记得加上 a==b 时的判定(虽然我也不知道为什么不加会炸,见下)
bool greaterthan(const string& a, const string& b) {
if (a.length() == b.length()) {
for (size_t i = 0; i < a.length(); ++i) {
if (a[i] < b[i]) {
return false;
}
if (a[i] > b[i]) {
return true;
}
}
return false;
} else {
return a.length() > b.length();
}
}