Generally empty()/isEmpty() is more efficient than using size()