I found using size_t a bit cumbersome because there are some edges, like comparing to negative number, reverse loop. Just wondering if it's ok to use int if we know the size is not too big. ptrdiff_t is signed but it's a bit lengthy to type.
size_t
int
ptrdiff_t