Just to clarify:
we use size_t when we deal w/ size and we want to be able to express largest size for a variable like in a calculation or data structure so the size is ALWAYS guaranteed to be able to represent 2^32 distinct positive integers (since int is typically 4B and size_t is typedef for unsigned int so no neg representations.) We should stick to size_t for portability (b/c of size issues across different machines where size is too little or something) and naturally like in loops to access indices so
for ( size_t i = 0; i < size; ++i )
cout << list[i] << " , ";
we use int when we want to have negatives so the 2^32 distinct values is halved, so half of the values are neg, the other pos.
Also to clarify, the largest base-2 representation of a 32-bit size_t would be: 11111111111111111111111111111111 so whatever that is in base-10. But w/ the case of int (b/c it is signed), we largest base-10 value is half what that binary is (32 1's).
Am I correct?