As already noted by others, this can be improved, function should be const and not all cases are handled:
bool Mint::operator<(const Mint &rhs) const
{
if (sign != rhs.sign)
return sign == 1;
if (num.size() < rhs.num.size())
return sign == 0;
if (num.size() > rhs.num.size())
return sign == 1;
for (int i = num.size() - 1; i>=0; i--)
{
if ( num[i] < rhs.num[i])
{
return sign == 0;
}
if ( num[i] > rhs.num[i])
{
return sign == 1;
}
}
return false;
}