Тип std::size_t
определяется как тип numeri c, который может представлять размер максимально возможного объекта (скажем, N байтов).
Самый большой объект может быть массивом, и поэтому массив с максимально возможным количеством объектов представляет собой массив N char
s.
Итак, std::size_t
имеет смысл для индексов массива и размеры тоже .
Вы должны придерживаться этого соглашения, насколько это возможно, потому что в противном случае вы потенциально можете внести ошибки:
std::size_t
обычно используется для индексации массива и l oop подсчет. Программы, которые используют другие типы, такие как unsigned int
, для индексации массива могут дать сбой, например, в 64-битных системах, когда индекс превышает UINT_MAX
или если он полагается на 32-битную модульную арифметику c ( cppref )
Вместо этого мы могли бы иметь std::index_t
, но это было бы то же самое, что std::size_t
, так что это бессмысленно.