size_t と int の比較でハマった

std::vector.size()の返り値はsize_t

int a = 10 size_t b = 20

if (a - b < 0) printf("true"); else printf("false");

これはfalseが返ってくる。 size_t同士で比較するか、bをintでcastして比較すると望みの挙動になったが、 どうするのが正しいのか。 この場合、C++的にはsize_tで統一するのが正しそう