std::vector::size()
возвращает size_type
без знака и обычно то же самое, что и size_t
, например. это 8 байтов на 64-битных платформах.
В constrast QVector::size()
возвращает int
, который обычно составляет 4 байта даже на 64-битных платформах, и при этом он подписан, что означает, что он может идти только на половину до 2 ^ 32.
Почему? Это кажется довольно нелогичным, а также технически ограничивающим, и хотя и не очень вероятно, что вам может понадобиться больше, чем 2 ^ 32 числа элементов, использование подписанных сокращений int, которые варьируются пополам без видимых веских причин. Возможно, чтобы избежать предупреждений компилятора для людей, слишком ленив объявить i
как uint
, а не int
, который решил, что все контейнеры возвращают тип размера, который не имеет смысла, является лучшим решением? Причина не может быть такой глупой?