Enteros vs. sin signo para longitudes / conteos

Para representar una longitud o una variable de conteo, ¿es mejor usarfirmado ono firmado enteros?

Me parece que C ++ STL tiende a preferirno firmado (std::size_t, como enstd :: vector :: size (), en lugar de C #BCL tiende a preferirfirmado enteros (como enICollection.Count.

Teniendo en cuenta que una longitud o un conteo son enteros no negativos, mi intuición elegiríano firmado; pero no entiendo por qué los diseñadores .NET eligieron enteros con signo.

¿Cuál es el mejor enfoque? ¿Cuáles son los pros y los contras de cada uno?

Respuestas a la pregunta(4)

Su respuesta a la pregunta